From: tim.orling@konsulko.com
To: openembedded-core@lists.openembedded.org
Cc: Tim Orling <tim.orling@konsulko.com>
Subject: [PATCH] python3-packaging: upgrade 26.2 -> 26.3
Date: Wed, 5 Aug 2026 09:15:21 -0700 [thread overview]
Message-ID: <20260805161520.1960651-2-tim.orling@konsulko.com> (raw)
From: Tim Orling <tim.orling@konsulko.com>
For full comparison of changes (134 commits, 73 files changed), see:
https://github.com/pypa/packaging/compare/26.2...26.3
Upstream release notes:
https://packaging.pypa.io/en/stable/changelog.html
26.3 - 2026-08-03
Features:
* 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. to_specifier_set() converts a range back to a
SpecifierSet where a PEP 440 form exists. (PR #1267, PR #1270, PR #1298)
* PEP 808: accept Metadata-Version: 2.6. (PR #1194)
* Add a limit argument to parse_tag() for compressed tag sets. (#1220)
* Add a prefer_sdist_predicate argument to Pylock.select() to prefer
source distributions over wheels for selected packages. (PR #1334)
* Add pure_python_tags() to generate the pure-Python tags for a Python
version without touching the running platform. (PR #1346)
* Add SpecifierSet.is_subset(), is_superset(), and is_disjoint(), which
compare the versions two specifier sets accept. (PR #1313)
Behavior adaptations:
* Drop support for Python 3.8; packaging now requires Python 3.9 or
later. (PR #1157)
* Prefer native linux_* platform tags over manylinux and musllinux tags
on Linux. (#160)
Fixes for versions and specifiers:
* Raise InvalidVersion instead of TypeError when Version is given a
non-string. (PR #1319)
* Raise InvalidVersion for non-string pre-release letters passed to
Version.from_parts. (PR #1241)
* Fix an AttributeError when hashing internally trimmed versions.
(PR #1242)
* Fix SpecifierSet.is_unsatisfiable for post-release boundary
intersections. (PR #1257)
Fixes for requirements and markers:
* Make Requirement.__hash__ consistent with __eq__ for
trailing-zero-equivalent specifiers (e.g. foo==1.0.0 and foo==1.0.0.0),
so equal requirements hash equal and deduplicate in sets and dicts.
(PR #1232)
* Normalize requested extra names before comparing or hashing
requirements. (#644)
* Preserve a Requirement’s specifier prereleases override across a pickle
round trip. (#1204)
* Raise InvalidRequirement instead of InvalidSpecifier when a requirement
contains an invalid specifier. (PR #1332)
* Clarify the error for post-release prefix wildcards like ==1.0.post1.*.
(PR #1299)
* Preserve quoting semantics when serializing marker values, so
round-tripped markers parse back to the same marker. (PR #1213)
* Keep the parentheses of a nested group when serializing markers.
(PR #1316)
* Normalize extra and dependency_groups values in nested markers at parse
time. (PR #1246, PR #1310)
* Raise UndefinedComparison when a set-valued variable like extras is used
outside the membership form. (PR #1265)
* Raise UndefinedEnvironmentName (a KeyError subclass) for missing
environment keys during marker evaluation. (PR #1276)
* Wrap malformed string literal errors in InvalidMarker /
InvalidRequirement instead of leaking a low-level error. (PR #1249)
* Reject requirements and markers with a trailing line break. (PR #1345)
Fixes for metadata and licenses:
* Collect all from_email validation errors into one ExceptionGroup instead
of raising the first. (PR #1268)
* Accept the UTF-8 charset case-insensitively in email payloads. (PR #1330)
* Reject malformed Description-Content-Type values. (PR #1329)
* Don’t rewrite user values that contain {field} placeholders in error
messages. (PR #1327)
* Route multipart email payloads to unparsed instead of asserting.
(PR #1247)
* Make InvalidMetadata and CyclicDependencyGroup picklable. (PR #1328)
* Fold every line boundary str.splitlines recognizes when writing a header
with RFC822Message. (PR #1356)
* Raise InvalidLicenseExpression for misplaced WITH clauses and empty
LicenseRef- names. (PR #1266)
* Raise InvalidLicenseExpression instead of KeyError for a LicenseRef-
with a + suffix. (PR #1219)
Fixes for tags and filenames:
* Raise InvalidTag from parse_tag() for tags with the wrong number of
components. (PR #1238)
* Reject empty tag components in parse_wheel_filename() and parse_tag().
(PR #1234)
* Reject an empty project name in the wheel and sdist filename parsers.
(PR #1305)
* Reject wheel filenames with a trailing newline. (PR #1341)
* Reject wheel tags whose interpreter component is not an identifier.
(#577)
* is_normalized_name now rejects names with collapsed double hyphens
like a--b. (PR #1230)
* Fix duplicate explicit abi3t tags. (PR #1245)
* Forward the warn argument to generic_tags() in sys_tags(). (PR #1264)
* Raise SystemError for an empty or malformed CPython EXT_SUFFIX.
(PR #1271, PR #1301)
* Fix a typo in the macOS fat3 architecture name (was fat32). (PR #1199)
* Fixes for pylock, direct URLs, and dependency groups:
* Percent-decode pylock artifact file names derived from a url so that
local versions (e.g. a wheel with 2.12.1+cu130 encoded as
2.12.1%2Bcu130) yield a valid file name. (PR #1314)
* Use an explicitly empty tags sequence in Pylock.select() instead of
falling back to sys_tags(). (PR #1349)
* Fix Pylock.select() on Python builds that report a non-PEP 440
python_full_version (e.g. 3.15.0+). (PR #1179)
* Reject TOML booleans where integers are expected in pylock files.
(PR #1244)
* Add PylockSelectError to packaging.pylock.__all__.
(PR #1202)
* Fix DirectUrl credential stripping for passwords containing @.
(PR #1218)
* Parse the URL scheme case-insensitively when checking for file URLs in
direct_url. (PR #1240)
* Require absolute file URLs for local directories in direct_url.
(PR #1297)
* Collect InvalidRequirement errors while resolving dependency groups
instead of leaking them. (PR #1302)
* Don’t cache malformed dependency group parses. (PR #1248)
[Truncated, see "Upstream release notes" link above for the full changelog]
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
All ptests pass on qemux86-64 for core-image-ptest-python3-packaging
Testsuite summary
TOTAL: 62785
PASS: 62785
SKIP: 0
XFAIL: 0
FAIL: 0
XPASS: 0
ERROR: 0
DURATION: 425
.../{python3-packaging_26.2.bb => python3-packaging_26.3.bb} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-devtools/python/{python3-packaging_26.2.bb => python3-packaging_26.3.bb} (94%)
diff --git a/meta/recipes-devtools/python/python3-packaging_26.2.bb b/meta/recipes-devtools/python/python3-packaging_26.3.bb
similarity index 94%
rename from meta/recipes-devtools/python/python3-packaging_26.2.bb
rename to meta/recipes-devtools/python/python3-packaging_26.3.bb
index 81ae6f2732..a0d80d21f0 100644
--- a/meta/recipes-devtools/python/python3-packaging_26.2.bb
+++ b/meta/recipes-devtools/python/python3-packaging_26.3.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/pypa/packaging"
LICENSE = "Apache-2.0 OR BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91"
-SRC_URI[sha256sum] = "ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661"
+SRC_URI[sha256sum] = "94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79"
SRC_URI += "file://run-ptest.in"
--
2.47.3
reply other threads:[~2026-08-05 16:16 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260805161520.1960651-2-tim.orling@konsulko.com \
--to=tim.orling@konsulko.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox