Metadata-Version: 1.1
Name: braulio
Version: 0.3.0b0
Summary: A command line tool to handle changelogs using Git commit messages
Home-page: https://github.com/mbarakaja/braulio
Author: José María Domínguez Moreno
Author-email: miso.0b11@gmail.com
License: MIT license
Description: braulio
        =======
        
        
        .. image:: https://img.shields.io/pypi/v/braulio.svg
                :target: https://pypi.python.org/pypi/braulio
        
        .. image:: https://img.shields.io/travis/mbarakaja/braulio.svg
                :target: https://travis-ci.org/mbarakaja/braulio
        
        .. image:: https://readthedocs.org/projects/braulio/badge/?version=latest
                :target: https://braulio.readthedocs.io/en/latest/?badge=latest
                :alt: Documentation Status
        
        
        
        Simplify software release by handling version bump and updating changelog file.
        
        Braulio inspects each commit message and determines the next version to be
        released based on a couple of conventions. Each commit message must have a label
        with metadata information about the action and optionally the scope of the code
        being introduced.
        
        
        Commit message convention
        -------------------------
        Braulio looks for commits that follow a given convention. The convention is
        defined by setting up the options ``label_pattern`` and ``label_position``, which
        are available through the CLI tool also.
        
        ``label_position =``
          The posible values are **header** or **footer** (default). This option tell to
          Braulio where to look for metatada information.
        
        ``label_pattern =``
          This is not a regular expression, but instead is a pattern using placeholders,
          where each placeholder represents a metadata information that should be
          extracted from the commit message. The available placeholders are **{action}**,
          **{scope}** and **{subject}**. ``{action}`` are always required, ``{scope}`` is
          optional and  ``{subject}`` is required only if **label_position** is set to
          ``header``. Everything else is treated in a literal way.
        
        
        Examples
        ~~~~~~~~
        Given the next setup.cfg file:
        
        .. code-block:: ini
        
            [braulio]
            label_position = header
            label_pattern = [{action}] {subject}
        
        The config above defines that the label must be localed in the header of the
        commit message and must meet the pattern ``[{action}] {subject}``. The next
        commit message header must match the pattern:
        
        .. code-block:: bash
        
            [feat] Add music please
        
            Ok, I am going to change it
        
        The commit matches the message convention and the extracted information is:
        
        .. code-block:: python
        
            {
                'action': 'feat',
                'scope': None,
                'subject': 'Add music please'
            }
        
        If the label is located in the footer, ``{subject}`` must be ommited since the
        entire header will be used as the subject value.
        
        
        Custom Git tag names
        --------------------
        
        +-----------------------+--------------------+-------------------------------+
        |          CLI          |      Config File   |              Default          |
        +-----------------------+--------------------+-------------------------------+
        |   ``--tag--patern``   |    tag_pattern     |            v{version}         |
        +-----------------------+--------------------+-------------------------------+
        
        Pattern used to get and add release git tags. This is not a regular expression,
        Instead it must have the placehold field ``version`` surrounded by curly braces.
        The placeholder determines where a version string is located in a given tag
        name. Anything that is not contained in braces is considered literal text.
        
        Example
        ~~~~~~~
        
        In order to match the tag ``release-1.0.0``, ``release-3`` and ``release-35.2``,
        the pattern must be ``release-{version}``. As stated above, any time a new
        version is released, the same pattern will be used as template to generate the
        new Git tag name. The new version string will fill the ``{version}`` placeholder.
        
        
        Custom release commit message
        -----------------------------
        If the release commit is enabled, this is used for the message.
        
        +---------------+-------------+-------------------------------+
        | CLI           | Config File | Default                       |
        +===============+=============+===============================+
        | ``--message`` | message     | Release version {new_version} |
        +---------------+-------------+-------------------------------+
        
        This is a template string containing replacement fields. The available fields
        are **{new_version**} and **{current_version}**. ``{new_version}`` is always
        mandatory, while ``{current_version}``
        
        
        Installing
        ----------
        
        Install and update using pip:
        
        .. code-block:: bash
        
            $ pip install -U braulio
        
        
        Usage
        -----
        
        .. code-block:: bash
        
            $ brau --help
        
        
        
        * Free software: MIT license
        
        
        History
        =======
        
        0.3.0b0 (2018-08-14)
        --------------------
        
        Bug Fixes
        ~~~~~~~~~
        
        * release
        
          - Abort when a lower version is passed to --bump
          - Stop aborting when user inputs No to confirmation prompt
          - Ensure --bump works with versions without minor and patch parts.
          - Validate tag_pattern value
        * git - Fix Tag's __repr__ and __str__ methods
        
        Features
        ~~~~~~~~
        
        * release
        
          - Support pre-release versions
          - Add option to customize the commit message
          - Add option to specify the current version
          - Add support to custom git tag names
          - Add support to custom commit message conventions
        * cli - Add --version option to output current version
        
        0.2.0 (2018-07-25)
        ------------------
        
        Bug Fixes
        ~~~~~~~~~
        
        * changelog - Fix release markup being inserted in the wrong place
        
        Features
        ~~~~~~~~
        
        * release
        
          - Show useful info while running release subcommand
          - Add support to custom change log file names
          - Support version string update on selected files
        * init - Add interactive config and changelog files creation
        
        0.1.0 (2018-07-13)
        ------------------
        
        Features
        ~~~~~~~~
        
        * release
        
          - Add --no-commit and --no-tag options
          - Add options for manual version bump
        
        
Keywords: braulio
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
