Metadata-Version: 2.1
Name: newversion
Version: 1.7.0
Summary: Your version manager
Home-page: https://github.com/vemel/newversion
Author: Vlad Emelianov
Author-email: vlad.emelianov.nz@gmail.com
License: MIT
Project-URL: Documentation, https://newversion.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/vemel/newversion
Project-URL: Tracker, https://github.com/vemel/newversion/issues
Description: # NewVersion - Your version manager
        
        [![PyPI - newversion](https://img.shields.io/pypi/v/newversion.svg?color=blue&label=newversion)](https://pypi.org/project/newversion)
        [![Docs](https://img.shields.io/readthedocs/newversion.svg?color=blue&label=Builder%20docs)](https://newversion.readthedocs.io/)
        
        [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/newversion.svg?color=blue)](https://pypi.org/project/newversion)
        [![Coverage](https://img.shields.io/codecov/c/github/vemel/newversion)](https://codecov.io/gh/vemel/newversion)
        
        - [NewVersion - Your version manager](#newversion---your-version-manager)
          - [Features](#features)
          - [Installation](#installation)
          - [Usage](#usage)
            - [CLI](#cli)
            - [Python library](#python-library)
          - [Versioning](#versioning)
          - [Latest changes](#latest-changes)
        
        ## Features
        
        - Follows [PEP 440](https://www.python.org/dev/peps/pep-0440/)
        - Fully compatible with [packaging.Version](https://packaging.pypa.io/en/latest/version.html)
        - Brings version bumping from [semver](https://pypi.org/project/semver/)
        - Comes with a helpful CLI tool `newversion`
        - Shines in CI
        
        ## Installation
        
        ```bash
        python -m pip install newversion
        ```
        
        ## Usage
        
        ### CLI
        
        ```bash
        newversion            # 0.0.0
        newversion bump major # 1.0.0
        
        python setup.py --version  # 1.2.3
        python setup.py --version | newversion bump  # 1.2.4
        python setup.py --version | newversion get minor  # 2
        
        echo "1.2.3rc1" | newversion bump micro   # 1.2.3
        echo "1.2.3rc1" | newversion bump minor   # 1.3.0
        echo "1.2.3rc1" | newversion bump major   # 2.0.0
        echo "1.2.3rc1" | newversion bump pre     # 1.2.3rc2
        echo "1.2.3rc1" | newversion bump rc      # 1.2.3rc2
        echo "1.2.3rc1" | newversion bump alpha   # 1.2.4a1
        
        echo "1.2.3rc1" | newversion set micro 5  # 1.2.5rc1
        echo "1.2.3rc1" | newversion set minor 5  # 1.5.3rc1
        echo "1.2.3rc1" | newversion set major 5  # 5.2.3rc1
        echo "1.2.3rc1" | newversion set pre 5    # 1.2.3rc5
        echo "1.2.3rc1" | newversion set rc 5     # 1.2.3rc5
        echo "1.2.3rc1" | newversion set alpha 5  # 1.2.3a5
        
        echo "1.2.3rc1" | newversion get micro    # 1
        echo "1.2.3rc1" | newversion get minor    # 2
        echo "1.2.3rc1" | newversion get major    # 3
        echo "1.2.3rc1" | newversion get pre      # rc1
        echo "1.2.3rc1" | newversion get rc       # 1
        echo "1.2.3rc1" | newversion get alpha    # 0
        
        echo "1.2.3rc1" | newversion stable # 1.2.3
        
        echo "1.2.3rc1" | newversion is_stable       # error!
        echo "1.2.3" | newversion is_stable          # 1.2.3
        echo "1.2.3" | newversion is_stable && echo "Stable!" # Stable!
        
        echo "1.2.3rc1" | newversion gt "1.2.3"   # error!
        echo "1.2.3rc1" | newversion lte "1.2.3"  # "1.2.3rc1"
        ```
        
        ### Python library
        
        ```python
        from newversion import Version
        
        version = Version("1.2.3")
        next_version = version.bump_minor() # Version("1.3.0")
        
        # bump version same way as SemVer
        version.dumps() # "1.2.3"
        version.bump_micro().dumps() # "1.2.4"
        version.bump_minor().dumps() # "1.3.0"
        version.bump_major().dumps() # "2.0.0"
        
        # create and bump pre-releases
        version.bump_prerelease().dumps() # "1.2.4rc1"
        version.bump_prerelease(bump_release="minor").dumps() # "1.3.0rc1"
        version.bump_prerelease("alpha").dumps() # "1.2.4a1"
        Version("1.2.3b4").bump_prerelease().dumps() # "1.2.3b5"
        version.bump_micro().replace(dev=1234).dumps() # "1.2.4.dev1234"
        
        # and post-releases
        version.bump_postrelease().dumps() # "1.2.3.post1"
        Version("1.2.3.post3").bump_postrelease(2).dumps() # "1.2.3.post5"
        
        # easily check if this is a pre- or dev release or a stable version
        Version("1.2.3").is_stable # True
        Version("1.2.3a6").is_stable # False
        Version("1.2.3.post3").is_stable # True
        Version("1.2.3.post3").get_stable().dumps() # "1.2.3"
        ```
        
        ## Versioning
        
        `newversion` version follows [PEP 440](https://www.python.org/dev/peps/pep-0440/).
        
        ## Latest changes
        
        Full changelog can be found in [Releases](https://github.com/vemel/newversion/releases).
        
        # Changelog
        All notable changes to this project will be documented in this file.
        
        The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
        and this project adheres to
        [PEP 440 -- Version Identification and Dependency Specification](https://www.python.org/dev/peps/pep-0440/).
        
        ## [Unreleased]
        
        ## [1.7.0] - 2021-03-15
        
        ## [1.7.0rc1] - 2021-03-15
        ### Added
        - `[cli]` `echo "1.2.3" | newversion ne "1.2.4"` comamnd to raise error if version is not equal to other
        
        ### Changed
        - `[api]` reworked `Executor` for easier usage as API
        
        ### Fixed
        - `[packaging]` console entrypoint `newversion` was not present in wheel package
        - `[version]` error on getting `epoch`
        - `[packaging]` `typing_extensions` are no longer needed on `python > 3.8`
        
        ## [0.1.5] - 2021-02-25
        ### Changed
        - Added compatibility with Python 3.6.10+
        
Keywords: pep440,versioning,version,ci,automation
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Typing :: Typed
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
