Bump packaging from 25.0 to 26.3
DE
3d ago+3+3+0123456789-3-3-0123456789
Bumps packaging from 25.0 to 26.3.
Release notes
Sourced from packaging's releases.
26.3
What's Changed
Features
- Add a public
VersionRangeAPI andSpecifierSet.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 aSpecifierSetwhere a PEP 440 form exists. (#1267, #1270, #1298)- PEP 808: accept
Metadata-Version: 2.6. (#1194)- Add a
limitargument toparse_tag()for compressed tag sets. (#1220)- Add a
prefer_sdist_predicateargument toPylock.select()to prefer source distributions over wheels for selected packages. (#1334)- Add
pure_python_tags()to generate the pure-Python tags for a Python version without touching the running platform. (#1346)- Add
SpecifierSet.is_subset(),SpecifierSet.is_superset(), andSpecifierSet.is_disjoint(), which compare the versions two specifier sets accept. (#1313)Behavior adaptations
- Drop support for Python 3.8; packaging now requires Python 3.9 or later. (#1157)
- Prefer native
linux_*platform tags overmanylinuxandmusllinuxtags on Linux. (#160)Fixes for versions and specifiers
- Raise
InvalidVersioninstead ofTypeErrorwhenVersionis given a non-string. (#1319)- Raise
InvalidVersionfor non-string pre-release letters passed toVersion.from_parts. (#1241)- Fix an
AttributeErrorwhen hashing internally trimmed versions. (#1242)- Fix
SpecifierSet.is_unsatisfiablefor post-release boundary intersections. (#1257)Fixes for requirements and markers
- Make
Requirement.__hash__consistent with__eq__for trailing-zero-equivalent specifiers (e.g.foo==1.0.0andfoo==1.0.0.0), so equal requirements hash equal and deduplicate in sets and dicts. (#1232)- Normalize requested extra names before comparing or hashing requirements. (#644)
- Preserve a
Requirement's specifierprereleasesoverride across a pickle round trip. (#1204)- Raise
InvalidRequirementinstead ofInvalidSpecifierwhen a requirement contains an invalid specifier. (#1332)- Clarify the error for post-release prefix wildcards like
==1.0.post1.*. (#1299)- Preserve quoting semantics when serializing marker values, so round-tripped markers parse back to the same marker. (#1213)
- Keep the parentheses of a nested group when serializing markers. (#1316)
- Normalize
extraanddependency_groupsvalues in nested markers at parse time. (#1246, #1310)- Raise
UndefinedComparisonwhen a set-valued variable likeextrasis used outside the membership form. (#1265)- Raise
UndefinedEnvironmentName(aKeyErrorsubclass) for missing environment keys during marker evaluation. (#1276)- Wrap malformed string literal errors in
InvalidMarker/InvalidRequirementinstead of leaking a low-level error. (#1249)- Reject requirements and markers with a trailing line break. (#1345)
Fixes for metadata and licenses
- Collect all
from_emailvalidation errors into oneExceptionGroupinstead of raising the first. (#1268)- Accept the UTF-8 charset case-insensitively in email payloads. (#1330)
- Reject malformed
Description-Content-Typevalues. (#1329)- Don't rewrite user values that contain
{field}placeholders in error messages. (#1327)- Route multipart email payloads to
unparsedinstead of asserting. (#1247)- Make
InvalidMetadataandCyclicDependencyGrouppicklable. (#1328)- Fold every line boundary
str.splitlinesrecognizes when writing a header withRFC822Message. (#1356)
... (truncated)
Changelog
Sourced from packaging's changelog.
26.3 - 2026-08-03
Features:
- Add a public :class:
~packaging.ranges.VersionRangeAPI and
:meth:SpecifierSet.to_range() <packaging.specifiers.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.
:meth:~packaging.ranges.VersionRange.to_specifier_setconverts a range back
to a :class:~packaging.specifiers.SpecifierSetwhere a PEP 440 form exists.
(:pull:1267, :pull:1270, :pull:1298)- PEP 808: accept
Metadata-Version: 2.6. (:pull:1194)- Add a
limitargument toparse_tag()for compressed tag sets.
(:issue:1220)- Add a
prefer_sdist_predicateargument toPylock.select()to prefer
source distributions over wheels for selected packages. (:pull:1334)- Add :func:
~packaging.tags.pure_python_tagsto generate the pure-Python
tags for a Python version without touching the running platform.
(:pull:1346)- Add :meth:
SpecifierSet.is_subset() <packaging.specifiers.SpecifierSet.is_subset>, :meth:~packaging.specifiers.SpecifierSet.is_superset,
and :meth:~packaging.specifiers.SpecifierSet.is_disjoint, which compare the
versions two specifier sets accept. (:pull:1313)Behavior adaptations:
- Drop support for Python 3.8; packaging now requires Python 3.9 or later.
(:pull:1157)- Prefer native
linux_*platform tags overmanylinuxandmusllinux
tags on Linux. (:issue:160)Fixes for versions and specifiers:
- Raise
InvalidVersioninstead ofTypeErrorwhenVersionis given a
non-string. (:pull:1319)- Raise
InvalidVersionfor non-string pre-release letters passed to
Version.from_parts. (:pull:1241)- Fix an
AttributeErrorwhen hashing internally trimmed versions.
(:pull:1242)- Fix
SpecifierSet.is_unsatisfiablefor post-release boundary
intersections. (:pull:1257)Fixes for requirements and markers:
MakeRequirement.__hash__consistent with__eq__for
trailing-zero-equivalent specifiers (e.g.foo==1.0.0and
foo==1.0.0.0), so equal requirements hash equal and deduplicate in
sets and dicts. (:pull:1232)
</tr></table>
... (truncated)
Commits
929fd4bBump for releasef300ebfchore(deps): bump the pre-commit group with 5 updates (#1357)f91d975ci(downstream): bump hatchling to 1.31.0 and fix its pytest rootdir (#1361)b1a7124chore(deps): bump the github-actions group with 7 updates (#1358)2d873ebfix(metadata): fold every line boundary when writing headers (#1356)413d006docs: changelog for 26.3 (#1343)4eb0753docs(metadata): explain selective field validation (#1342)77e9ed4feat(tags): add pure Python tag generator (#1346)7cea5e8ci: drop 3.13t on Windows (3.13.14t may fail to build, run takes 9 minutes) (...45a8b34docs: add missing versionadded/versionchanged directives (#1344)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Summary by cubic
Updates the packaging dependency in uv.lock from 25.0 to 26.3. This major bump drops Python 3.8 support and adds a public VersionRange API; on Linux, native linux_* tags are now preferred over manylinux/musllinux tags.