Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/python-semver/python-semver
Python package to work with Semantic Versioning (https://semver.org/)
https://github.com/python-semver/python-semver
python release semantic-version semantic-versioning semver semver-cli semver-format semver-release semver-tag version versioning versions
Last synced: about 1 month ago
JSON representation
Python package to work with Semantic Versioning (https://semver.org/)
- Host: GitHub
- URL: https://github.com/python-semver/python-semver
- Owner: python-semver
- License: bsd-3-clause
- Created: 2012-02-07T08:46:16.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-07-16T13:00:18.000Z (about 2 months ago)
- Last Synced: 2024-07-17T15:08:35.322Z (about 2 months ago)
- Topics: python, release, semantic-version, semantic-versioning, semver, semver-cli, semver-format, semver-release, semver-tag, version, versioning, versions
- Language: Python
- Homepage: https://python-semver.readthedocs.io/en/latest/
- Size: 779 KB
- Stars: 453
- Watchers: 13
- Forks: 97
- Open Issues: 14
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE.txt
- Citation: CITATION.cff
- Support: SUPPORT.md
Awesome Lists containing this project
README
Quickstart
==========.. teaser-begin
A Python module to simplify `semantic versioning`_.
|GHAction| |python-support| |downloads| |license| |docs| |black|
|openissues| |GHDiscussion|.. teaser-end
The module follows the ``MAJOR.MINOR.PATCH`` style:
* ``MAJOR`` version when you make incompatible API changes,
* ``MINOR`` version when you add functionality in a backwards compatible manner, and
* ``PATCH`` version when you make backwards compatible bug fixes.Additional labels for pre-release and build metadata are supported.
To import this library, use:
.. code-block:: python
>>> import semver
Working with the library is quite straightforward. To turn a version string into the
different parts, use the ``semver.Version.parse`` function:.. code-block:: python
>>> ver = semver.Version.parse('1.2.3-pre.2+build.4')
>>> ver.major
1
>>> ver.minor
2
>>> ver.patch
3
>>> ver.prerelease
'pre.2'
>>> ver.build
'build.4'To raise parts of a version, there are a couple of functions available for
you. The function ``semver.Version.bump_major`` leaves the original object untouched, but
returns a new ``semver.Version`` instance with the raised major part:.. code-block:: python
>>> ver = semver.Version.parse("3.4.5")
>>> ver.bump_major()
Version(major=4, minor=0, patch=0, prerelease=None, build=None)It is allowed to concatenate different "bump functions":
.. code-block:: python
>>> ver.bump_major().bump_minor()
Version(major=4, minor=1, patch=0, prerelease=None, build=None)To compare two versions, semver provides the ``semver.compare`` function.
The return value indicates the relationship between the first and second
version:.. code-block:: python
>>> semver.compare("1.0.0", "2.0.0")
-1
>>> semver.compare("2.0.0", "1.0.0")
1
>>> semver.compare("2.0.0", "2.0.0")
0There are other functions to discover. Read on!
.. |latest-version| image:: https://img.shields.io/pypi/v/semver.svg
:alt: Latest version on PyPI
:target: https://pypi.org/project/semver
.. |python-support| image:: https://img.shields.io/pypi/pyversions/semver.svg
:target: https://pypi.org/project/semver
:alt: Python versions
.. |downloads| image:: https://img.shields.io/pypi/dm/semver.svg
:alt: Monthly downloads from PyPI
:target: https://pypi.org/project/semver
.. |license| image:: https://img.shields.io/pypi/l/semver.svg
:alt: Software license
:target: https://github.com/python-semver/python-semver/blob/master/LICENSE.txt
.. |docs| image:: https://readthedocs.org/projects/python-semver/badge/?version=latest
:target: http://python-semver.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. _semantic versioning: https://semver.org/
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Black Formatter
.. |Gitter| image:: https://badges.gitter.im/python-semver/community.svg
:target: https://gitter.im/python-semver/community
:alt: Gitter
.. |openissues| image:: http://isitmaintained.com/badge/open/python-semver/python-semver.svg
:target: http://isitmaintained.com/project/python-semver/python-semver
:alt: Percentage of open issues
.. |GHAction| image:: https://github.com/python-semver/python-semver/workflows/Python/badge.svg
:alt: Python
.. |GHDiscussion| image:: https://shields.io/badge/GitHub-%20Discussions-green?logo=github
:target: https://github.com/python-semver/python-semver/discussions
:alt: GitHub Discussion