- Add a public VersionRange API and SpecifierSet.to_range(),
representing the versions a specifier set accepts as an interval set
that supports intersection, union, difference, complement, set
relations, membership tests, and filtering.
VersionRange.to_specifier_set() converts a range back to a
SpecifierSet where a PEP 440 form exists.
- PEP 808: accept Metadata-Version: 2.6.
- Add a limit argument to parse_tag() for compressed tag sets.
- Add a prefer_sdist_predicate argument to Pylock.select() to prefer
source distributions over wheels for selected packages.
- Add pure_python_tags() to generate the pure-Python tags for a Python
version without touching the running platform.
- Add SpecifierSet.is_subset(), SpecifierSet.is_superset(), and
SpecifierSet.is_disjoint(), which compare the versions two specifier
sets accept.
- Drop support for Python 3.8; packaging now requires Python 3.9 or
later.
- Prefer native linux_* platform tags over manylinux and musllinux tags
on Linux. - Add a musl/Alpine test job and make the test suite pass on
musl.
The tests now work on musl so don't skip the manylinux tests.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>