Quickstart
==========
.. teaser-begin
A Python module for `semantic versioning`_. Simplifies comparing versions.
|GHAction| |python-support| |downloads| |license| |docs| |black|
|openissues| |GHDiscussion|
.. teaser-end
.. note::
This project works for Python 3.7 and greater only. If you are
looking for a compatible version for Python 2, use the
maintenance branch |MAINT|_.
The last version of semver which supports Python 2.7 to 3.5 will be
2.x.y However, keep in mind, the major 2 release is frozen: no new
features nor backports will be integrated.
We recommend to upgrade your workflow to Python 3 to gain support,
bugfixes, and new features.
.. |MAINT| replace:: ``maint/v2``
.. _MAINT: https://github.com/python-semver/python-semver/tree/maint/v2
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")
0
There 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
Raw data
{
"_id": null,
"home_page": "https://github.com/python-semver/python-semver",
"name": "semver",
"maintainer": "Sebastien Celles, Tom Schraitle",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "s.celles@gmail.com",
"keywords": "",
"author": "Kostiantyn Rybnikov",
"author_email": "k-bx@k-bx.com",
"download_url": "https://files.pythonhosted.org/packages/46/30/a14b56e500e8eabf8c349edd0583d736b231e652b7dce776e85df11e9e0b/semver-3.0.1.tar.gz",
"platform": null,
"description": "Quickstart\n==========\n\n.. teaser-begin\n\nA Python module for `semantic versioning`_. Simplifies comparing versions.\n\n|GHAction| |python-support| |downloads| |license| |docs| |black|\n|openissues| |GHDiscussion|\n\n.. teaser-end\n\n.. note::\n\n This project works for Python 3.7 and greater only. If you are\n looking for a compatible version for Python 2, use the\n maintenance branch |MAINT|_.\n\n The last version of semver which supports Python 2.7 to 3.5 will be\n 2.x.y However, keep in mind, the major 2 release is frozen: no new\n features nor backports will be integrated.\n\n We recommend to upgrade your workflow to Python 3 to gain support,\n bugfixes, and new features.\n\n.. |MAINT| replace:: ``maint/v2``\n.. _MAINT: https://github.com/python-semver/python-semver/tree/maint/v2\n\n\nThe module follows the ``MAJOR.MINOR.PATCH`` style:\n\n* ``MAJOR`` version when you make incompatible API changes,\n* ``MINOR`` version when you add functionality in a backwards compatible manner, and\n* ``PATCH`` version when you make backwards compatible bug fixes.\n\nAdditional labels for pre-release and build metadata are supported.\n\nTo import this library, use:\n\n.. code-block:: python\n\n >>> import semver\n\nWorking with the library is quite straightforward. To turn a version string into the\ndifferent parts, use the ``semver.Version.parse`` function:\n\n.. code-block:: python\n\n >>> ver = semver.Version.parse('1.2.3-pre.2+build.4')\n >>> ver.major\n 1\n >>> ver.minor\n 2\n >>> ver.patch\n 3\n >>> ver.prerelease\n 'pre.2'\n >>> ver.build\n 'build.4'\n\nTo raise parts of a version, there are a couple of functions available for\nyou. The function ``semver.Version.bump_major`` leaves the original object untouched, but\nreturns a new ``semver.Version`` instance with the raised major part:\n\n.. code-block:: python\n\n >>> ver = semver.Version.parse(\"3.4.5\")\n >>> ver.bump_major()\n Version(major=4, minor=0, patch=0, prerelease=None, build=None)\n\nIt is allowed to concatenate different \"bump functions\":\n\n.. code-block:: python\n\n >>> ver.bump_major().bump_minor()\n Version(major=4, minor=1, patch=0, prerelease=None, build=None)\n\nTo compare two versions, semver provides the ``semver.compare`` function.\nThe return value indicates the relationship between the first and second\nversion:\n\n.. code-block:: python\n\n >>> semver.compare(\"1.0.0\", \"2.0.0\")\n -1\n >>> semver.compare(\"2.0.0\", \"1.0.0\")\n 1\n >>> semver.compare(\"2.0.0\", \"2.0.0\")\n 0\n\n\nThere are other functions to discover. Read on!\n\n\n.. |latest-version| image:: https://img.shields.io/pypi/v/semver.svg\n :alt: Latest version on PyPI\n :target: https://pypi.org/project/semver\n.. |python-support| image:: https://img.shields.io/pypi/pyversions/semver.svg\n :target: https://pypi.org/project/semver\n :alt: Python versions\n.. |downloads| image:: https://img.shields.io/pypi/dm/semver.svg\n :alt: Monthly downloads from PyPI\n :target: https://pypi.org/project/semver\n.. |license| image:: https://img.shields.io/pypi/l/semver.svg\n :alt: Software license\n :target: https://github.com/python-semver/python-semver/blob/master/LICENSE.txt\n.. |docs| image:: https://readthedocs.org/projects/python-semver/badge/?version=latest\n :target: http://python-semver.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n.. _semantic versioning: https://semver.org/\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Black Formatter\n.. |Gitter| image:: https://badges.gitter.im/python-semver/community.svg\n :target: https://gitter.im/python-semver/community\n :alt: Gitter\n.. |openissues| image:: http://isitmaintained.com/badge/open/python-semver/python-semver.svg\n :target: http://isitmaintained.com/project/python-semver/python-semver\n :alt: Percentage of open issues\n.. |GHAction| image:: https://github.com/python-semver/python-semver/workflows/Python/badge.svg\n :alt: Python\n.. |GHDiscussion| image:: https://shields.io/badge/GitHub-%20Discussions-green?logo=github\n :target: https://github.com/python-semver/python-semver/discussions\n :alt: GitHub Discussion\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Python helper for Semantic Versioning (https://semver.org)",
"version": "3.0.1",
"project_urls": {
"Bug Tracker": "https://github.com/python-semver/python-semver/issues",
"Changelog": "https://python-semver.readthedocs.io/en/latest/changelog.html",
"Documentation": "https://python-semver.rtfd.io",
"Homepage": "https://github.com/python-semver/python-semver",
"Releases": "https://github.com/python-semver/python-semver/releases"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d45df2b4fe45886238c405ad177ca43911cb1459d08003004da5c27495eb4216",
"md5": "60971ef224f0d202ca72b372f23a0d95",
"sha256": "2a23844ba1647362c7490fe3995a86e097bb590d16f0f32dfc383008f19e4cdf"
},
"downloads": -1,
"filename": "semver-3.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "60971ef224f0d202ca72b372f23a0d95",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 17343,
"upload_time": "2023-06-14T11:43:20",
"upload_time_iso_8601": "2023-06-14T11:43:20.066631Z",
"url": "https://files.pythonhosted.org/packages/d4/5d/f2b4fe45886238c405ad177ca43911cb1459d08003004da5c27495eb4216/semver-3.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4630a14b56e500e8eabf8c349edd0583d736b231e652b7dce776e85df11e9e0b",
"md5": "b7502c12ce325ffffeab694fed52f6f5",
"sha256": "9ec78c5447883c67b97f98c3b6212796708191d22e4ad30f4570f840171cbce1"
},
"downloads": -1,
"filename": "semver-3.0.1.tar.gz",
"has_sig": false,
"md5_digest": "b7502c12ce325ffffeab694fed52f6f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 205762,
"upload_time": "2023-06-14T11:43:22",
"upload_time_iso_8601": "2023-06-14T11:43:22.245267Z",
"url": "https://files.pythonhosted.org/packages/46/30/a14b56e500e8eabf8c349edd0583d736b231e652b7dce776e85df11e9e0b/semver-3.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-14 11:43:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "python-semver",
"github_project": "python-semver",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "semver"
}