Changelog¶
20.8 - 2020-12-11¶
20.7 - 2020-11-28¶
No unreleased changes.
20.6 - 2020-11-28¶
Note
This release was subsequently yanked, and these changes were included in 20.7.
20.5 - 2020-11-27¶
20.4 - 2020-05-19¶
Canonicalize version before comparing specifiers. (#282)
Change type hint for
canonicalize_name
to returnpackaging.utils.NormalizedName
. This enables the use of static typing tools (like mypy) to detect mixing of normalized and un-normalized names.
20.3 - 2020-03-05¶
Fix changelog for 20.2.
20.2 - 2020-03-05¶
Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU (e.g. ARM-v8, aarch64), to report the wrong bitness.
20.0 - 2020-01-06¶
Add type hints (#191)
Add proper trove classifiers for PyPy support (#198)
Scale back depending on
ctypes
for manylinux support detection (#171)Use
sys.implementation.name
where appropriate forpackaging.tags
(#193)Expand upon the API provded by
packaging.tags
:interpreter_name()
,mac_platforms()
,compatible_tags()
,cpython_tags()
,generic_tags()
(#187)Officially support Python 3.8 (#232)
Add
major
,minor
, andmicro
aliases topackaging.version.Version
(#226)Properly mark
packaging
has being fully typed by adding a py.typed file (#226)
19.2 - 2019-09-18¶
19.1 - 2019-07-30¶
19.0 - 2019-01-20¶
Fix string representation of PEP 508 direct URL requirements with markers.
Better handling of file URLs
This allows for using
file:///absolute/path
, which was previously prevented due to the missingnetloc
.This allows for all file URLs that
urlunparse
turns back into the original URL to be valid.
17.1 - 2017-02-28¶
Fix
utils.canonicalize_version
when supplying non PEP 440 versions.
17.0 - 2017-02-28¶
Drop support for python 2.6, 3.2, and 3.3.
Define minimal pyparsing version to 2.0.2 (#91).
Add
epoch
,release
,pre
,dev
, andpost
attributes toVersion
andLegacyVersion
(#34).Add
Version().is_devrelease
andLegacyVersion().is_devrelease
to make it easy to determine if a release is a development release.Add
utils.canonicalize_version
to canonicalize version strings orVersion
instances (#121).
16.8 - 2016-10-29¶
Fix markers that utilize
in
so that they render correctly.Fix an erroneous test on Python RC releases.
16.7 - 2016-04-23¶
Add support for the deprecated
python_implementation
marker which was an undocumented setuptools marker in addition to the newer markers.
16.6 - 2016-03-29¶
Add support for the deprecated, PEP 345 environment markers in addition to the newer markers.
16.5 - 2016-02-26¶
Fix a regression in parsing requirements with whitespaces between the comma separators.
16.4 - 2016-02-22¶
Fix a regression in parsing requirements like
foo (==4)
.
16.3 - 2016-02-21¶
Fix a bug where
packaging.requirements:Requirement
was overly strict when matching legacy requirements.
16.2 - 2016-02-09¶
Add a function that implements the name canonicalization from PEP 503.
16.1 - 2016-02-07¶
Implement requirement specifiers from PEP 508.
16.0 - 2016-01-19¶
Relicense so that packaging is available under either the Apache License, Version 2.0 or a 2 Clause BSD license.
Support installation of packaging when only distutils is available.
Fix
==
comparison when there is a prefix and a local version in play. (#41).Implement environment markers from PEP 508.
15.2 - 2015-05-13¶
Fix an error where the arbitary specifier (
===
) was not correctly allowing pre-releases when it was being used.Expose the specifier and version parts through properties on the
Specifier
classes.Allow iterating over the
SpecifierSet
to get access to all of theSpecifier
instances.Allow testing if a version is contained within a specifier via the
in
operator.
15.1 - 2015-04-13¶
Fix a logic error that was causing inconsistent answers about whether or not a pre-release was contained within a
SpecifierSet
or not.
15.0 - 2015-01-02¶
Add
Version().is_postrelease
andLegacyVersion().is_postrelease
to make it easy to determine if a release is a post release.Add
Version().base_version
andLegacyVersion().base_version
to make it easy to get the public version without any pre or post release markers.Support the update to PEP 440 which removed the implied
!=V.*
when using either>V
or<V
and which instead special cased the handling of pre-releases, post-releases, and local versions when using>V
or<V
.
14.5 - 2014-12-17¶
Normalize release candidates as
rc
instead ofc
.Expose the
VERSION_PATTERN
constant, a regular expression matching a valid version.
14.4 - 2014-12-15¶
Ensure that versions are normalized before comparison when used in a specifier with a less than (
<
) or greater than (>
) operator.
14.3 - 2014-11-19¶
BACKWARDS INCOMPATIBLE Refactor specifier support so that it can sanely handle legacy specifiers as well as PEP 440 specifiers.
BACKWARDS INCOMPATIBLE Move the specifier support out of
packaging.version
intopackaging.specifiers
.
14.2 - 2014-09-10¶
Add prerelease support to
Specifier
.Remove the ability to do
item in Specifier()
and replace it withSpecifier().contains(item)
in order to allow flags that signal if a prerelease should be accepted or not.Add a method
Specifier().filter()
which will take an iterable and returns an iterable with items that do not match the specifier filtered out.
14.1 - 2014-09-08¶
Allow
LegacyVersion
andVersion
to be sorted together.Add
packaging.version.parse()
to enable easily parsing a version string as either aVersion
or aLegacyVersion
depending on it’s PEP 440 validity.
14.0 - 2014-09-05¶
Initial release.