Semantic-version

Latest version: v2.10.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

2.8.2

------------------

*Bugfix:*

* `82 <https://github.com/rbarrois/python-semanticversion/issues/82>`_:
Restore computation of ``Spec.specs`` for single-term expressions
(``>=0.1.2``)

2.8.1

------------------

*Bugfix:*

* Restored attribute ``Spec.specs``, removed by mistake during the refactor.

2.8.0

------------------

*New:*

* Restore support for Python 2.

2.7.1

------------------

*Bugfix:*

* Fix parsing of npm-based caret expressions.

2.7.0

------------------

This release brings a couple of significant changes:

- Allow to define several range description syntaxes (``SimpleSpec``, ``NpmSpec``, ...)
- Fix bugs and unexpected behaviours in the ``SimpleSpec`` implementation.

Backwards compatibility has been kept, but users should adjust their code for the new features:

- Use ``SimpleSpec`` instead of ``Spec``
- Replace calls to ``Version('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.

2.6.0

------------------

*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

Page 2 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.