NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #486 most downloaded on PyPI
A library implementing the 'SemVer' scheme.
Last release 4 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 2.9 years
Nearly every release is documented
notes for 26 of 26 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
26 releases · first in 2012
132 _: Ensure sorting a collection of versions is always stable, even with build metadata.
New:
* `132 <https://github.com/rbarrois/python-semanticversion/issues/132>`_:
Ensure sorting a collection of versions is always stable, even with
build metadata.
Add support for Django 3.1, 3.2, 4.0
New:
* Add support for Django 3.1, 3.2, 4.0
* Add support for Python 3.7 / 3.8 / 3.9 / 3.10
One column per quarter.
98 _: Properly handle wildcards in SimpleSpec (e.g. ==1.2.*).
Bugfix:
* `98 <https://github.com/rbarrois/python-semanticversion/issues/98>`_:
Properly handle wildcards in ``SimpleSpec`` (e.g. ``==1.2.*``).
*Bugfix:* * #89 _: Properly coerce versions with leading zeroes in components (e.g. 1.01.007)
Bugfix:
* `#89 <https://github.com/rbarrois/python-semanticversion/issues/89>`_:
Properly coerce versions with leading zeroes in components (e.g.
``1.01.007``)
Add Clause.prettyprint() for debugging
New:
- Add Clause.prettyprint() for debugging
Bugfix:
* `#86 <https://github.com/rbarrois/python-semanticversion/issues/86>`_:
Fix handling of prerelease ranges within `NpmSpec`
*Bugfix:* * #82 _: Restore computation of Spec.specs for single-term expressions (>=0.1.2)
Bugfix:
* `#82 <https://github.com/rbarrois/python-semanticversion/issues/82>`_:
Restore computation of ``Spec.specs`` for single-term expressions
(``>=0.1.2``)
Restored attribute Spec.specs, removed by mistake during the refactor.
Bugfix:
* Restored attribute ``Spec.specs``, removed by mistake during the refactor.
*New:* * Restore support for Python 2.
New:
* Restore support for Python 2.
Fix parsing of npm-based caret expressions.
Bugfix:
* Fix parsing of npm-based caret expressions.
Deprecate the Spec class (Removed in 3.1); use the SimpleSpec class instead
This release brings a couple of significant changes:
SimpleSpec, NpmSpec, ...)SimpleSpec implementation.Backwards compatibility has been kept, but users should adjust their code for the new features:
SimpleSpec instead of SpecVersion('1.2', partial=True) with SimpleSpec('~1.2')iter(some_spec) is deprecated.New:
* Allow creation of a ``Version`` directly from parsed components, as keyword arguments
(``Version(major=1, minor=2, patch=3)``)
* Add ``Version.truncate()`` to build a truncated copy of a ``Version``
* Add ``NpmSpec(...)``, following strict NPM matching rules (https://github.com/npm/node-semver#ranges)
* Add ``Spec.parse('xxx', syntax='<syntax>')`` for simpler multi-syntax support
* Add ``Version().precedence_key``, for use in ``sort(versions, key=lambda v: v.precedence_key)`` calls.
The contents of this attribute is an implementation detail.
Bugfix:
* Fix inconsistent behaviour regarding versions with a prerelease specification.
Deprecated:
* Deprecate the ``Spec`` class (Removed in 3.1); use the ``SimpleSpec`` class instead
* Deprecate the internal ``SpecItem`` class (Removed in 3.0).
* Deprecate the ``partial=True`` form of ``Version``; use ``SimpleSpec`` instead.
Removed:
* Remove support for Python2 (End of life 4 months after this release)
Refactor:
* Switch spec computation to a two-step process: convert the spec to a combination
of simple comparisons with clear semantics, then use those.
*New:* * #43 _: Add support for Django up to 1.10. *Removed:* * Remove support for Django<1.7 *Bugfix:* * #35 _: Properly handle ^0.X.Y in a NPM-compa
New:
* `#43 <https://github.com/rbarrois/python-semanticversion/issues/43>`_:
Add support for Django up to 1.10.
Removed:
* Remove support for Django<1.7
Bugfix:
* `#35 <https://github.com/rbarrois/python-semanticversion/issues/35>`_:
Properly handle `^0.X.Y` in a NPM-compatible way
New:
Removed:
Bugfix:
Remove specs of the Spec('<1.1.3+') form
Bugfix:
#18: According to SemVer 2.0.0, build numbers aren't ordered.
Remove specs of the Spec('<1.1.3+') form
Comparing Version('0.1.0') to Version('0.1.0+bcd') has new rules:
>>> Version('0.1.0+1') == Version('0.1.0+bcd') False >>> Version('0.1.0+1') != Version('0.1.0+bcd') True >>> Version('0.1.0+1') < Version('0.1.0+bcd') False >>> Version('0.1.0+1') > Version('0.1.0+bcd') False >>> Version('0.1.0+1') <= Version('0.1.0+bcd') False >>> Version('0.1.0+1') >= Version('0.1.0+bcd') False >>> compare(Version('0.1.0+1'), Version('0.1.0+bcd')) NotImplementedsemantic_version.compare returns NotImplemented when its parameters differ only by build metadata
Spec('<=1.3.0') now matches Version('1.3.0+abde24fe883')
#24: Fix handling of bumping pre-release versions, thanks to @minchinweb.
#30: Add support for NPM-style ^1.2.3 and ~2.3.4 specs, thanks to @skwashd
Bugfix:
#18 : According to SemVer 2.0.0, build numbers aren’t ordered.
Remove specs of the Spec('<1.1.3+') form
Comparing Version('0.1.0') to Version('0.1.0+bcd') has new rules:
Version ( '0.1.0+1' ) == Version ( '0.1.0+bcd' ) False >>> Version ( '0.1.0+1' ) != Version ( '0.1.0+bcd' ) True >>> Version ( '0.1.0+1' ) < Version ( '0.1.0+bcd' ) False >>> Version ( '0.1.0+1' ) > Version ( '0.1.0+bcd' ) False >>> Version ( '0.1.0+1' ) <= Version ( '0.1.0+bcd' ) False >>> Version ( '0.1.0+1' ) >= Version ( '0.1.0+bcd' ) False >>> compare ( Version ( '0.1.0+1' ), Version ( '0.1.0+bcd' )) NotImplemented
semantic_version.compare() returns NotImplemented when its parameters differ only by build metadata
Spec('<=1.3.0') now matches Version('1.3.0+abde24fe883')
#24 : Fix handling of bumping pre-release versions, thanks to @minchinweb.
#30 : Add support for NPM-style ^1.2.3 and ~2.3.4 specs, thanks to @skwashd
Fix tests for Django 1.7+, thanks to @mhrivnak.
Bugfix:
* Fix tests for Django 1.7+, thanks to @mhrivnak.
Fix packaging metadata (advertise Python 3.4 support)
Bugfix:
* Fix packaging metadata (advertise Python 3.4 support)
*New:* * #16 _: Add an API for bumping versions, by @RickEyre.
New:
* `#16 <https://github.com/rbarrois/python-semanticversion/issues/16>`_: Add an API for bumping versions,
by @RickEyre.
*Bugfix:* * #13 _: Fix handling of files encoding in setup.py.
Bugfix:
* `#13 <https://github.com/rbarrois/python-semanticversion/issues/13>`_: Fix handling of files encoding
in ``setup.py``.
Handle the full semver-2.0.0 specifications (instead of the 2.0.0-rc2 of previous releases)
New:
* Handle the full ``semver-2.0.0`` specifications (instead of the ``2.0.0-rc2`` of previous releases)
* `#8 <https://github.com/rbarrois/python-semanticversion/issues/8>`_: Allow ``'*'`` as a valid version spec
*Bugfix:* * #5 _: Fix packaging (broken symlinks, old-style distutils, etc.)
Bugfix:
* `#5 <https://github.com/rbarrois/python-semanticversion/issues/5>`_: Fix packaging (broken
symlinks, old-style distutils, etc.)
*Bugfix:* * #2 _: Properly expose ~semantic_version.validate as a top-level module function.
Bugfix:
#2: Properly expose ~semantic_version.validate as a top-level module function.
Bugfix:
Add the Version.coerce class method to ~semantic_version.Version class for mapping arbitrary version strings to semver.
Bugfix:
#1: Allow partial versions without minor or patch level
New:
Add the Version.coerce class method to ~semantic_version.Version class for mapping arbitrary version strings to semver.
Add the ~semantic_version.validate method to validate a version string against the SemVer rules.
Full Python3 support
Properly validate ~semantic_version.django_fields.VersionField and ~semantic_version.django_fields.SpecField.
Bugfix:
Properly validate ~semantic_version.django_fields.VersionField and ~semantic_version.django_fields.SpecField.
Add introspection rules for south
New:
* Add introspection rules for south
Add semantic_version.Spec.filter (filter a list of ~semantic_version.Version)
New:
Add semantic_version.Spec.filter (filter a list of ~semantic_version.Version)
Add semantic_version.Spec.select (select the highest ~semantic_version.Version from a list)
Update semantic_version.Version.__repr__
New:
Add semantic_version.Spec.filter() (filter a list of Version )
Add semantic_version.Spec.select() (select the highest Version from a list)
Update semantic_version.Version.repr()
*Backwards incompatible changes:*
Backwards incompatible changes:
Removed "loose" specification support
Cleanup ~semantic_version.Spec to be more intuitive.
Merge Spec and SpecList into ~semantic_version.Spec.
Remove ~semantic_version.django_fields.SpecListField
Backwards incompatible changes:
Removed “loose” specification support
Cleanup Spec to be more intuitive.
Merge Spec and SpecList into Spec .
Remove SpecListField
Allow split specifications when instantiating a ~semantic_version.SpecList::
New:
Allow split specifications when instantiating a ~semantic_version.SpecList:
>>> SpecList('>=0.1.1', '!=0.1.3') == SpecList('>=0.1.1,!=0.1.3') True
New:
Allow split specifications when instantiating a SpecList :
SpecList ( '>=0.1.1' , '!=0.1.3' ) == SpecList ( '>=0.1.1,!=0.1.3' ) True
~semantic_version.Version and ~semantic_version.Spec classes
First public release.
New:
~semantic_version.Version and ~semantic_version.Spec classes
Related django fields: ~semantic_version.django_fields.VersionField and ~semantic_version.django_fields.SpecField
First public release.
New:
Version and Spec classes
Related django fields: VersionField and SpecField
Your coding agent can read these notes before it upgrades. Set up the MCP server →