- Fix a regression in parsing requirements like
foo (==4).
- Fix a bug where
packaging.requirements:Requirementwas overly strict when matching legacy requirements.
- Add a function that implements the name canonicalization from PEP 503.
- Implement requirement specifiers from PEP 508.
- 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. (:issue:`41`). - Implement environment markers from PEP 508.
- Normalize post-release spellings for rev/r prefixes. :issue:`35`
- 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
Specifierclasses. - Allow iterating over the
SpecifierSetto get access to all of theSpecifierinstances. - Allow testing if a version is contained within a specifier via the
inoperator.
- Fix a logic error that was causing inconsistent answers about whether or not
a pre-release was contained within a
SpecifierSetor not.
- Add
Version().is_postreleaseandLegacyVersion().is_postreleaseto make it easy to determine if a release is a post release. - Add
Version().base_versionandLegacyVersion().base_versionto 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>Vor<Vand which instead special cased the handling of pre-releases, post-releases, and local versions when using>Vor<V.
- Normalize release candidates as
rcinstead ofc. - Expose the
VERSION_PATTERNconstant, a regular expression matching a valid version.
- Ensure that versions are normalized before comparison when used in a
specifier with a less than (
<) or greater than (>) operator.
- 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.versionintopackaging.specifiers.
- 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.
- Allow
LegacyVersionandVersionto be sorted together. - Add
packaging.version.parse()to enable easily parsing a version string as either aVersionor aLegacyVersiondepending on it's PEP 440 validity.
- Initial release.