diff --git a/README.rst b/README.rst
index 51c5c66..f610f7e 100644
--- a/README.rst
+++ b/README.rst
@@ -58,7 +58,7 @@ using the conventional Python syntax::
 Documentation
 ~~~~~~~~~~~~~
 
-The documentation, including this introduction to Gfapy, an user manual
+The documentation, including this introduction to Gfapy, a user manual
 and the API documentation is hosted on the ReadTheDocs server,
 at the URL http://gfapy.readthedocs.io/en/latest/ and it can be
 downloaded as PDF from the URL
diff --git a/debian/changelog b/debian/changelog
index 8fe78a0..760c22d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+gfapy (1.0.0+git20170917.a4e6465-1) UNRELEASED; urgency=medium
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Sun, 26 Jan 2020 08:25:47 +0000
+
 gfapy (1.0.0+dfsg-4) unstable; urgency=medium
 
   * Add missing build-dep on dh-python, fixing FTBFS.
diff --git a/doc/tutorial/alignments.rst b/doc/tutorial/alignments.rst
index de4c28e..37bc89a 100644
--- a/doc/tutorial/alignments.rst
+++ b/doc/tutorial/alignments.rst
@@ -106,7 +106,7 @@ CIGARs are represented by specialized lists, instances of the class
 :class:`~gfapy.alignment.cigar.CIGAR`, whose elements are CIGAR operations
 CIGAR operations are represented by instance of the class
 :class:`~gfapy.alignment.cigar.CIGAR.Operation`,
-and provide the properties ``length`` (lenght of the operation, an integer)
+and provide the properties ``length`` (length of the operation, an integer)
 and ``code`` (one-letter string which specifies the type of operation).
 Note that not all operations allowed in SAM files (for which CIGAR strings
 were first defined) are also meaningful in GFA and thus GFA2 only allows
diff --git a/doc/tutorial/comments.rst b/doc/tutorial/comments.rst
index 94ca5e2..a271520 100644
--- a/doc/tutorial/comments.rst
+++ b/doc/tutorial/comments.rst
@@ -22,7 +22,7 @@ comment line instances. The single elements can be modified, but the list
 itself is read-only.  To remove a comment from the Gfa, you need to find the
 instance in the list, and call
 :func:`~gfapy.line.common.disconnection.Disconnection.disconnect` on it.  To
-add a comment to a :class:`~gfapy.gfa.Gfa` instance is done similary to other
+add a comment to a :class:`~gfapy.gfa.Gfa` instance is done similarly to other
 lines, by using the :func:`Gfa.add_line(line)
 <gfapy.lines.creators.Creators.add_line>` method.
 
diff --git a/doc/tutorial/custom_records.rst b/doc/tutorial/custom_records.rst
index c0887c7..ccf1952 100644
--- a/doc/tutorial/custom_records.rst
+++ b/doc/tutorial/custom_records.rst
@@ -71,7 +71,7 @@ characters and spacing characters), except tabs and newlines (as they are
 structural elements of the line).  No further validation is performed.
 
 As Gfapy cannot know how many positional fields are present when parsing custom
-records, an heuristic approach is followed, to identify tags. A field resembles
+records, a heuristic approach is followed, to identify tags. A field resembles
 a tag if it starts with ``tn:d:`` where ``tn`` is a valid tag name and ``d`` a
 valid tag datatype (see :ref:`tags` chapter). The fields are parsed from the
 last to the first.
@@ -140,7 +140,7 @@ only requires to define some constants and to call the class method
 :func:`~gfapy.line.line.Line.register_extension`.
 
 The constants to define are ``RECORD TYPE``, which shall be the content
-of the record type field (e.g. ``M``); ``POSFIELDS`` shall contain a ordered
+of the record type field (e.g. ``M``); ``POSFIELDS`` shall contain an ordered
 dict, specifying the datatype for each positional field, in the order these
 fields are found in the line; ``TAGS_DATATYPE`` is a dict, specifying the
 datatype of the predefined optional tags; ``NAME_FIELD`` is a field name,
diff --git a/doc/tutorial/gfa.rst b/doc/tutorial/gfa.rst
index aa514e4..aee934c 100644
--- a/doc/tutorial/gfa.rst
+++ b/doc/tutorial/gfa.rst
@@ -59,7 +59,7 @@ overwritten).
 
 All methods for creating a Gfa (constructor and from_file) accept
 a ``vlevel`` parameter, the validation level,
-and can assume the values 0, 1, 2 and 3. An higher value means
+and can assume the values 0, 1, 2 and 3. A higher value means
 more validations are performed. The :ref:`validation` chapter explains
 the meaning of the different validation levels in detail.
 The default value is 1.
@@ -106,7 +106,7 @@ Collections of lines
 
 The property :attr:`~gfapy.lines.collections.Collections.lines`
 of the Gfa object is a list of all the lines
-in the GFA file (including the header, which is splitted into single-tag
+in the GFA file (including the header, which is split into single-tag
 lines). The list itself shall not be modified by the user directly (i.e.
 adding and removing lines is done using a different interface, see
 below). However the single elements of the list can be edited.
@@ -126,7 +126,7 @@ as a read-only property, which is named after the record type, in plural.
    []
 
 A particular case are edges; these are in GFA1 links and containments, while in
-GFA2 there is an unified edge record type, which also allows to represent
+GFA2 there is a unified edge record type, which also allows to represent
 internal alignments.  In Gfapy, the
 :attr:`~gfapy.lines.collections.Collections.edges` property retrieves all edges
 (i.e. all E lines in GFA2, and all L and C lines in GFA1). The
@@ -243,7 +243,7 @@ can be retrieved using the properties
    ['s1']
 
 The GFA1 specification does not handle the question of the namespace of
-identifiers explicitely. However, gfapy assumes and enforces
+identifiers explicitly. However, gfapy assumes and enforces
 a single namespace for segment, path names and the values of the ID tags
 of L and C lines. The content of this namespace can be found using
 :attr:`~gfapy.lines.collections.Collections.names` property.
@@ -251,7 +251,7 @@ The identifiers of single line types
 can be retrieved using the properties
 :attr:`~gfapy.lines.collections.Collections.segment_names`,
 :attr:`~gfapy.lines.collections.Collections.edge_names`
-(ID tags of of links and containments) and
+(ID tags of links and containments) and
 :attr:`~gfapy.lines.collections.Collections.path_names`.
 For GFA1, the properties
 :attr:`~gfapy.lines.collections.Collections.gap_names`,
diff --git a/doc/tutorial/header.rst b/doc/tutorial/header.rst
index b49f49e..f4b1b1f 100644
--- a/doc/tutorial/header.rst
+++ b/doc/tutorial/header.rst
@@ -139,16 +139,16 @@ on the header.
 String representation of the header
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For consinstency with other line types, the string representation of the header
+For consistency with other line types, the string representation of the header
 is a single-line string, eventually non standard-compliant, if it contains
 multiple instances of the tag. (and when calling
 :meth:`~gfapy.line.common.writer.Writer.field_to_s` for a tag present multiple
 times, the output string will contain the instances of the tag, separated by
 tabs).
 
-However, when the Gfa is output to file or string, the header is splitted into
+However, when the Gfa is output to file or string, the header is split into
 multiple H lines with single tags, so that standard-compliant GFA is output.
-The splitted header can be retrieved using the
+The split header can be retrieved using the
 :attr:`~gfapy.lines.headers.Headers.headers` property of the Gfa instance.
 
 .. doctest::
diff --git a/doc/tutorial/positional_fields.rst b/doc/tutorial/positional_fields.rst
index 329f2a8..ddce8c3 100644
--- a/doc/tutorial/positional_fields.rst
+++ b/doc/tutorial/positional_fields.rst
@@ -21,7 +21,7 @@ Field names
 ~~~~~~~~~~~
 
 The field names are derived from the specification. Lower case versions
-of the field names are used and spaces are subsituted with underscores.
+of the field names are used and spaces are substituted with underscores.
 In some cases, the field names were changed, as they represent keywords
 in common programming languages (``from``, ``send``).
 
@@ -442,7 +442,7 @@ for GFA2 segments.
 Crypical field names
 ^^^^^^^^^^^^^^^^^^^^
 
-The definition of from and to for containments is somewhat cryptical.
+The definition of from and to for containments is somewhat cryptic.
 Therefore following aliases have been defined for containments:
 container[\_orient] for from[\_\|segment\|orient]; contained[\_orient]
 for to[\_segment\|orient].
diff --git a/doc/tutorial/references.rst b/doc/tutorial/references.rst
index f1beab7..c6c4796 100644
--- a/doc/tutorial/references.rst
+++ b/doc/tutorial/references.rst
@@ -27,7 +27,7 @@ gfapy.Line instance, a line is added to a Gfa instance (this is done
 automatically when a GFA file is parsed). All strings expressing
 references are then changed into references to the corresponding line
 objects. The method ``is_connected()`` allows to determine if a line is
-connected to an gfapy instance. The read-only property ``gfa`` contains
+connected to a gfapy instance. The read-only property ``gfa`` contains
 the ``gfapy.Gfa`` instance to which the line is connected.
 
 .. doctest::
@@ -248,9 +248,9 @@ Induced set and captured path
 The item list in GFA2 sets and paths may not contain elements which are
 implicitly involved. For example a path may contain segments, without
 specifying the edges connecting them, if there is only one such edge.
-Alternatively a path may contain edges, without explitely indicating the
+Alternatively a path may contain edges, without explicitly indicating the
 segments. Similarly a set may contain edges, but not the segments
-refered to in them, or contain segments which are connected by edges,
+referred to in them, or contain segments which are connected by edges,
 without the edges themselves. Furthermore groups may refer to other
 groups (set to sets or paths, paths to paths only), which then
 indirectly contain references to segments and edges.
@@ -262,7 +262,7 @@ described in the specification. The computation can, therefore, only be
 applied to connected lines. For unordered groups, this computation is
 provided by the method ``induced_set()``, which returns an array of
 segment and edge instances. For ordered group, the computation is
-provided by the method ``captured_path()``, whcih returns a list of
+provided by the method ``captured_path()``, which returns a list of
 ``gfapy.OrientedLine`` instances, alternating segment and edge instances
 (and starting and ending in segments).
 
diff --git a/doc/tutorial/tags.rst b/doc/tutorial/tags.rst
index bfbabfb..4d3afc0 100644
--- a/doc/tutorial/tags.rst
+++ b/doc/tutorial/tags.rst
@@ -10,7 +10,7 @@ Tags
 
 Each record in GFA can contain tags. Tags are fields which consist in a
 tag name, a datatype and data. The format is ``NN:T:DATA`` where ``NN``
-is a two-letter tag name, ``T`` is an one-letter datatype string and
+is a two-letter tag name, ``T`` is a one-letter datatype string and
 ``DATA`` is a string representing the data according to the specified
 datatype. Tag names must be unique for each line, i.e. each line may
 only contain a tag once.
@@ -29,7 +29,7 @@ only contain a tag once.
 Custom tags
 ~~~~~~~~~~~
 
-Some tags are explicitely defined in the specification (these are named
+Some tags are explicitly defined in the specification (these are named
 *predefined tags* in Gfapy), and the user or an application can define
 its own custom tags.
 
@@ -76,7 +76,7 @@ specification, different for each kind of line.
     "VN:Z:1.0" # VN is upcase => predefined tag
     "z5:Z:1.0" # z5 first char is downcase => custom tag
 
-    # not forbidden, but not reccomended:
+    # not forbidden, but not recommended:
     "zZ:Z:1.0" # => mixed case, first char downcase => custom tag
     "Zz:Z:1.0" # => mixed case, first char upcase => custom tag
     "vn:Z:1.0" # => same name as predefined tag, but downcase => custom tag
@@ -121,7 +121,7 @@ The following table summarizes the datatypes available for tags:
 Validation
 ~~~~~~~~~~
 
-The tag name is validated according the the rules described above:
+The tag name is validated according the rules described above:
 except for the upper case tags indicated in the GFA1 specification, and
 the TS header tag, all other tags must contain at least one lower case
 letter.
diff --git a/doc/tutorial/validation.rst b/doc/tutorial/validation.rst
index e796021..58d90a3 100644
--- a/doc/tutorial/validation.rst
+++ b/doc/tutorial/validation.rst
@@ -15,10 +15,10 @@ value is 1.
 Manual validation
 ~~~~~~~~~~~~~~~~~
 
-Independently from the validation level choosen, the user can always check the
+Independently from the validation level chosen, the user can always check the
 value of a field calling
 :meth:`~gfapy.line.common.validate.Validate.validate_field` on the line
-instance. If no exeption is raised, the field content is valid.
+instance. If no exception is raised, the field content is valid.
 
 To check if the entire content of the line is valid, the user can call
 :meth:`~gfapy.line.common.validate.Validate.validate` on the line instance.
diff --git a/manual/gfapy-manual.pdf b/manual/gfapy-manual.pdf
new file mode 100644
index 0000000..ac45b70
Binary files /dev/null and b/manual/gfapy-manual.pdf differ