A Python module to simplify semantic versioning.
The module follows the MAJOR.MINOR.PATCH style:
MAJORversion when you make incompatible API changes,MINORversion when you add functionality in a backwards compatible manner, andPATCHversion when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are supported.
To import this library, use:
>>> import semverWorking with the library is quite straightforward. To turn a version string into the
different parts, use the semver.Version.parse function:
>>> 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:
>>> 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":
>>> 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:
>>> 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!