Metadata-Version: 2.0
Name: python-semantic-release
Version: 0.5.3
Summary: Automatic semantic versioning for python projects
Home-page: http://github.com/relekang/python-semantic-release
Author: Rolf Erik Lekang
Author-email: me@rolflekang.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: click (==4.1)
Requires-Dist: gitpython (==1.0.1)
Requires-Dist: invoke (==0.10.1)
Requires-Dist: semver (==2.2.0)
Requires-Dist: wheel

python-semantic-release |Build status| |Coverage status|
========================================================

Automatic semantic versioning for python projects

Install
-------

::

    pip install python-semantic-release

Usage
-----

The general idea is to have some sort of tag in commit messages that
indicates certain types of changes. If a commit message lack a tag it is
ignored. Running release can be run locally or from a CI service.

::

    Usage: semantic-release [OPTIONS] COMMAND

    Options:
      --major  Force major version.
      --minor  Force minor version.
      --patch  Force patch version.
      --noop   No-operations mode, finds the new version number without changing it.
      --help   Show this message and exit.

Commands
~~~~~~~~

-  ``version`` - Create a new release. Will change the version, commit
   it and tag it.
-  ``publish`` - Runs version before pushing to git and uploading to
   pypi.

Running commands from setup.py
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Add the following to your setup.py and you will be able to run
``python setup.py <command>`` as you woul
``semantic-release <command>``.

.. code:: python

    try:
        from semantic_release import setup_hook
        setup_hook(sys.argv)
    except ImportError:
        pass

Configuration
~~~~~~~~~~~~~

All configuration described here belongs in ``setup.cfg`` in a section:
``semantic-release``.

``version_variable`` - The filename and variable name of where the
version number is stored, e.g.
``semantic_release/__init__.py:__version__``.

Tags
^^^^

There are a set of tags used to evaluate the changes from commit
messages. They can be configured to meet what you want them to be. The
different tags are listed below with their defaults.

-  **Major change:** ``major_tag = :boom:`` :boom:
-  **Minor change:** ``minor_tag = :sparkles:`` :sparkles:
-  **Patch change:** ``patch_tag = :bug:`` :bug:

.. |Build status| image:: https://ci.frigg.io/relekang/python-semantic-release.svg
   :target: https://ci.frigg.io/relekang/python-semantic-release/last/
.. |Coverage status| image:: https://ci.frigg.io/relekang/python-semantic-release/coverage.svg
   :target: https://ci.frigg.io/relekang/python-semantic-release/last/


