ChangeLog¶
2.10.1 (unreleased)¶
Minor:
- 112: Functions returning a new
Version
instance reuse the current class, helping with subclassing.
Bugfix:
- 141: Ensure we return a new instance for
Version.truncate("build")
.
2.10.0 (2022-05-26)¶
New:
- 132: Ensure sorting a collection of versions is always stable, even with build metadata.
2.9.0 (2022-02-06)¶
New:
- Add support for Django 3.1, 3.2, 4.0
- Add support for Python 3.7 / 3.8 / 3.9 / 3.10
2.8.4 (2019-12-21)¶
Bugfix:
- #89: Properly coerce versions with leading zeroes in components (e.g.
1.01.007
)
2.8.3 (2019-11-21)¶
- New:
- Add Clause.prettyprint() for debugging
Bugfix:
- #86: Fix handling of prerelease ranges within NpmSpec
2.8.2 (2019-09-06)¶
Bugfix:
- #82: Restore computation of
Spec.specs
for single-term expressions (>=0.1.2
)
2.7.0 (2019-08-28)¶
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 ofSpec
- Replace calls to
Version('1.2', partial=True)
withSimpleSpec('~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 aVersion
- 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 insort(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 theSimpleSpec
class instead- Deprecate the internal
SpecItem
class (Removed in 3.0).- Deprecate the
partial=True
form ofVersion
; useSimpleSpec
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 (2016-09-25)¶
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-compatible way
2.5.0 (2016-02-12)¶
Bugfix:
#18: According to SemVer 2.0.0, build numbers aren’t ordered.
Remove specs of the
Spec('<1.1.3+')
formComparing
Version('0.1.0')
toVersion('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()
returnsNotImplemented
when its parameters differ only by build metadata
Spec('<=1.3.0')
now matchesVersion('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
2.3.0 (2014-03-16)¶
New:
- Handle the full
semver-2.0.0
specifications (instead of the2.0.0-rc2
of previous releases)- #8: Allow
'*'
as a valid version spec
2.2.0 (2013-03-22)¶
Bugfix:
- #1: Allow partial versions without minor or patch level
New:
- Add the
Version.coerce
class method toVersion
class for mapping arbitrary version strings to semver.- Add the
validate()
method to validate a version string against the SemVer rules.- Full Python3 support
1.2.0 (2012-05-18)¶
New:
Allow split specifications when instantiating a
SpecList
:>>> SpecList('>=0.1.1', '!=0.1.3') == SpecList('>=0.1.1,!=0.1.3') True
1.1.0 (2012-05-18)¶
New:
- Improved “loose” specification support (
>~
,<~
,!~
)- Introduced “not equal” specifications (
!=
,!~
)SpecList
class combining manySpec
- Add
SpecListField
to store aSpecList
.
1.0.0 (2012-05-17)¶
First public release.
New:
Version
andSpec
classes- Related django fields:
VersionField
andSpecField