RETIRED, further work has moved to Debian project infrastructure
Go to file
Kostiantyn Rybnikov 2a122ac6f4 Merge pull request #58 from ppkt/fix-travis-python2.6
Update Travis configuration file
2017-05-26 14:33:24 +03:00
.gitignore Ensure Python 3.2 support with tox 2016-05-15 18:33:49 +02:00
.travis.yml Remove Python 3.2 from testing matrix 2017-05-26 11:47:14 +02:00
CHANGELOG 2.7.7 changelog 2017-05-25 17:00:07 +03:00
CONTRIBUTORS Update changelog and contributors list 2016-11-09 00:45:04 +02:00
LICENSE.txt Add LICENSE file via addalicense.com 2013-07-16 04:49:45 -07:00
MANIFEST.in Include README.rst (instead of README.md) for PyPI 2016-05-15 19:04:27 +02:00
README.rst Add a function to parse a version string to a version info tuple. 2016-10-19 00:03:01 +11:00
semver.py Version 2.7.7 2017-05-25 17:02:22 +03:00
setup.py Add support for Python 3.6 2017-05-22 18:21:45 +02:00
tests.py Add comparision between VersionInfo objects 2017-05-19 23:02:03 +02:00
tox.ini Add support for Python 3.6 2017-05-22 18:21:45 +02:00

Semver Latest version on PyPI

Build status Python versions Monthly downloads from PyPI Software license

A Python module for semantic versioning. Simplifies comparing versions.

Usage

This module provides just couple of functions, main of which are:

>>> import semver
>>> 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
>>> semver.match("2.0.0", ">=1.0.0")
True
>>> semver.match("1.0.0", ">1.0.0")
False
>>> semver.format_version(3, 4, 5, 'pre.2', 'build.4')
'3.4.5-pre.2+build.4'
>>> version_parts = semver.parse("3.4.5-pre.2+build.4")
>>> version_parts == {
...     'major': 3, 'minor': 4, 'patch': 5,
...     'prerelease': 'pre.2', 'build': 'build.4'}
True
>>> version_info = semver.parse_version_info("3.4.5-pre.2+build.4")
>>> version_info
VersionInfo(major=3, minor=4, patch=5, prerelease='pre.2', build='build.4')
>>> version_info.major
3
>>> version_info > (1, 0)
True
>>> version_info < (3, 5)
True
>>> semver.bump_major("3.4.5")
'4.0.0'
>>> semver.bump_minor("3.4.5")
'3.5.0'
>>> semver.bump_patch("3.4.5")
'3.4.6'
>>> semver.max_ver("1.0.0", "2.0.0")
'2.0.0'
>>> semver.min_ver("1.0.0", "2.0.0")
'1.0.0'

Installation

For Python 2:

pip install semver

For Python 3:

pip3 install semver

How to Contribute

When you make changes to the code please run the tests before pushing your code to your fork and opening a pull request:

python setup.py test

We use py.test and tox to run tests against all supported Python versions. All test dependencies are resolved automatically, apart from virtualenv, which for the moment you still may have to install manually:

pip install "virtualenv<14.0.0"  # <14.0.0 needed for Python 3.2 only

You can use the clean command to remove build and test files and folders:

python setup.py clean