Metadata-Version: 2.0
Name: dover
Version: 0.2.0
Summary: A tool for tracking and incrementing project version numbering.
Home-page: https://bitbucket.org/mgemmill/dover
Author: Mark Gemmill
Author-email: dev@markgemmill.com
License: BSD License
Description-Content-Type: UNKNOWN
Keywords: project version versioning dover
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: docopt

dover v0.2.0
------------

A commandline utility for incrementing project version numbering.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Usage
^^^^^

.. code:: bash

    dover v0.2.0

    dover is a commandline utility for incrementing code file version numbering.

    Usage:
      dover [--list]
      dover increment (--major|--minor|--patch) [--apply]

    Options:
      -M --major   Change major dover segment.
      -m --minor   Change minor dover segment.
      -p --patch   Change patch dover segment.
      -h --help    Show this help message
      --version    Show app dover.

Basics
^^^^^^

``dover`` will look for either a specific **.dover** configuration file
or a **setup.cfg** file within the current directory.

Files that are to be tracked by ``dover`` should be listed in the
following format:

.. code:: ini

    [dover:file:relative-file-path.ext]

Example:

.. code:: ini

    [dover:file:setup.py]
    [dover:file:setup.cfg]
    [dover:file:dover/cli.py]

Fetch Current Project Version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Calling ``dover`` without any arguments returns the **current** version
number of the project.

.. code:: bash

    ... dover
    0.1.0
    ...

Currently Tracked File Status
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Calling ``dover`` with the ``--list`` option, prints the project version
and the list of all files and version strings being tracked:

.. code:: bash

    ... dover --list
    Current Version: 0.1.0
    Files:
        setup.py     0005 (__version__ = '0.1.0')
        setup.cfg    0002 (version = 0.1.0)
        dover/cli.py 0025 (__version__ = '0.1.0')
    ...

Reviewing Version Increment Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Calling ``dover increment`` with one the the segment options (e.g.
``--minor``), will print a listing of the propsed version change and the
files that will be effected:

.. code:: bash

    ... dover increment --minor
    Current Version: 0.1.0
    New Version:     0.2.0
    Files:
        setup.py      (0.1.0 -> 0.2.0)
        setup.cfg     (0.1.0 -> 0.2.0)
        dover/cli.py  (0.1.0 -> 0.2.0)
    ...

Applying Version Increment Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

To save the change make the same call with the ``--apply`` option:

.. code:: bash

    ... dover increment --minor --apply
    Current Version: 0.1.0
    New Version:     0.2.0
    Files:
        setup.py      (0.1.0 -> 0.2.0)
        setup.cfg     (0.1.0 -> 0.2.0)
        dover/cli.py  (0.1.0 -> 0.2.0)
    Version updates applied.
    ...

What If There Is a Problem?
^^^^^^^^^^^^^^^^^^^^^^^^^^^

If at any point the version numbers between files being tracked are
missaligned, ``dover`` will raise an error:

.. code:: bash

    ... dover increment --major --apply
    Not all file versions match:

        setup.py      0.1.0  (__version__ = '0.1.0')
        setup.cfg     0.3.0  (version = 0.3.0)
        dover/cli.py  0.1.0  (__version__ = '0.1.0')
    ...


History
^^^^^^^

0.2.0 (2018-02-22)
------------------

-  improved alignment of output
-  added additional version matching check

0.1.0 (2018-02-18)
------------------

-  initial commit


