public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Lumir Balhar <lbalhar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/python-packaging] rawhide: Update to 26.3 (rhbz#2511188)
Date: Mon, 17 Aug 2026 12:57:55 GMT	[thread overview]
Message-ID: <178697147517.1.3407651608052428103.rpms-python-packaging-5531ee310c5e@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/python-packaging
            Branch : rawhide
            Commit : 5531ee310c5e368cb7c258cf6d1c4c97bbc1621f
            Author : Lumir Balhar <lbalhar@redhat.com>
            Date   : 2026-08-12T12:01:37+02:00
            Stats  : +3/-326 in 4 file(s)
            URL    : https://src.fedoraproject.org/rpms/python-packaging/c/5531ee310c5e368cb7c258cf6d1c4c97bbc1621f?branch=rawhide

            Log:
            Update to 26.3 (rhbz#2511188)

Assisted-By: Claude

---
diff --git a/.gitignore b/.gitignore
index d0d2dae..76cbcd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@
 /packaging-26.0.tar.gz
 /packaging-26.1.tar.gz
 /packaging-26.2.tar.gz
+/packaging-26.3.tar.gz

diff --git a/155760e3.patch b/155760e3.patch
deleted file mode 100644
index c678492..0000000
--- a/155760e3.patch
+++ /dev/null
@@ -1,322 +0,0 @@
-From 155760e37acbe24bf82444f21e805006ef0b58c8 Mon Sep 17 00:00:00 2001
-From: Henry Schreiner <HenrySchreinerIII@gmail.com>
-Date: Sun, 14 Jun 2026 21:45:41 -0400
-Subject: [PATCH] test: make test suite compatible with pytest 9.1.0 (#1260)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* test: wrap parametrize argvalues in list for pytest compatibility
-
-A recent pytest release escalated PytestRemovedIn10Warning ("Passing a
-non-Collection iterable to parametrize is deprecated") to a warning that,
-under this repo's filterwarnings=error, fails collection. The comparison
-tests in test_specifiers.py and test_version.py passed
-itertools.chain.from_iterable(...) — a lazy chain iterator — directly as
-the parametrize argvalues.
-
-Wrap each in list() so a concrete Collection is passed. No test behavior
-changes; this only affects how the cases are materialized at collection.
-
-Assisted-by: ClaudeCode:claude-opus-4.8
-
-* test(downstream): pin pytest<9.1.0 for downstream suites
-
-pytest 9.1.0 turns the pinned downstream releases' parametrize usage into
-collection errors (non-Collection iterable in packaging_legacy/setuptools,
-duplicate parametrization in build). These suites were green on the last
-pre-9.1.0 run. Install pytest<9.1.0 before each project's test deps so a
-compatible version is kept; the pin downgrades the 9.1.0 that the deps
-would otherwise pull.
-
-Verified locally: packaging_legacy downstream collects and passes on 9.0.3.
-
-Assisted-by: ClaudeCode:claude-opus-4.8
----
- noxfile.py               |   5 ++
- tests/test_specifiers.py |  80 ++++++++++++-----------
- tests/test_version.py    | 136 ++++++++++++++++++++-------------------
- 3 files changed, 119 insertions(+), 102 deletions(-)
-
-diff --git a/noxfile.py b/noxfile.py
-index d6bd816f0..e99d9168a 100644
---- a/noxfile.py
-+++ b/noxfile.py
-@@ -135,6 +135,11 @@ def downstream(session: nox.Session, project: str) -> None:
- 
-     pip_cmd = ["uv", "pip"] if session.venv_backend == "uv" else ["pip"]
- 
-+    # These pinned downstream releases predate pytest 9.1.0, which turns their
-+    # parametrize usage into collection errors. Install a compatible pytest
-+    # before the project's test deps so it is kept (pip won't upgrade it).
-+    session.install("pytest<9.1.0")
-+
-     if project == "packaging_legacy":
-         session.install("-r", "tests/requirements.txt")
-         session.install("-e.")
-diff --git a/tests/test_specifiers.py b/tests/test_specifiers.py
-index 6d435aca0..456110b65 100644
---- a/tests/test_specifiers.py
-+++ b/tests/test_specifiers.py
-@@ -248,15 +248,17 @@ def test_specifiers_hash(self, specifier: str) -> None:
- 
-     @pytest.mark.parametrize(
-         ("left", "right", "op"),
--        itertools.chain.from_iterable(
--            # Verify that the equal (==) operator works correctly
--            [[(x, x, operator.eq) for x in SPECIFIERS]]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [
--                [(x, y, operator.ne) for j, y in enumerate(SPECIFIERS) if i != j]
--                for i, x in enumerate(SPECIFIERS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the equal (==) operator works correctly
-+                [[(x, x, operator.eq) for x in SPECIFIERS]]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [
-+                    [(x, y, operator.ne) for j, y in enumerate(SPECIFIERS) if i != j]
-+                    for i, x in enumerate(SPECIFIERS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_true(
-@@ -277,15 +279,17 @@ def test_comparison_canonicalizes(self, left: str, right: str) -> None:
- 
-     @pytest.mark.parametrize(
-         ("left", "right", "op"),
--        itertools.chain.from_iterable(
--            # Verify that the equal (==) operator works correctly
--            [[(x, x, operator.ne) for x in SPECIFIERS]]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [
--                [(x, y, operator.eq) for j, y in enumerate(SPECIFIERS) if i != j]
--                for i, x in enumerate(SPECIFIERS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the equal (==) operator works correctly
-+                [[(x, x, operator.ne) for x in SPECIFIERS]]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [
-+                    [(x, y, operator.eq) for j, y in enumerate(SPECIFIERS) if i != j]
-+                    for i, x in enumerate(SPECIFIERS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_false(
-@@ -2297,15 +2301,17 @@ def test_specifiers_combine_not_implemented(self) -> None:
- 
-     @pytest.mark.parametrize(
-         ("left", "right", "op"),
--        itertools.chain.from_iterable(
--            # Verify that the equal (==) operator works correctly
--            [[(x, x, operator.eq) for x in SPECIFIERS]]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [
--                [(x, y, operator.ne) for j, y in enumerate(SPECIFIERS) if i != j]
--                for i, x in enumerate(SPECIFIERS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the equal (==) operator works correctly
-+                [[(x, x, operator.eq) for x in SPECIFIERS]]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [
-+                    [(x, y, operator.ne) for j, y in enumerate(SPECIFIERS) if i != j]
-+                    for i, x in enumerate(SPECIFIERS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_true(
-@@ -2319,15 +2325,17 @@ def test_comparison_true(
- 
-     @pytest.mark.parametrize(
-         ("left", "right", "op"),
--        itertools.chain.from_iterable(
--            # Verify that the equal (==) operator works correctly
--            [[(x, x, operator.ne) for x in SPECIFIERS]]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [
--                [(x, y, operator.eq) for j, y in enumerate(SPECIFIERS) if i != j]
--                for i, x in enumerate(SPECIFIERS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the equal (==) operator works correctly
-+                [[(x, x, operator.ne) for x in SPECIFIERS]]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [
-+                    [(x, y, operator.eq) for j, y in enumerate(SPECIFIERS) if i != j]
-+                    for i, x in enumerate(SPECIFIERS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_false(
-diff --git a/tests/test_version.py b/tests/test_version.py
-index 9729298be..b3bf3394e 100644
---- a/tests/test_version.py
-+++ b/tests/test_version.py
-@@ -805,39 +805,41 @@ def test_version_is_postrelease(self, version: str, expected: bool) -> None:
-         ("left", "right", "op"),
-         # Below we'll generate every possible combination of VERSIONS that
-         # should be True for the given operator
--        itertools.chain.from_iterable(
--            # Verify that the less than (<) operator works correctly
--            [
--                [(x, y, operator.lt) for y in VERSIONS[i + 1 :]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the less than equal (<=) operator works correctly
--            [
--                [(x, y, operator.le) for y in VERSIONS[i:]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the equal (==) operator works correctly
--            [[(x, x, operator.eq) for x in VERSIONS]]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [
--                [(x, y, operator.ne) for j, y in enumerate(VERSIONS) if i != j]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the greater than equal (>=) operator works correctly
--            [
--                [(x, y, operator.ge) for y in VERSIONS[: i + 1]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the greater than (>) operator works correctly
--            [
--                [(x, y, operator.gt) for y in VERSIONS[:i]]
--                for i, x in enumerate(VERSIONS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the less than (<) operator works correctly
-+                [
-+                    [(x, y, operator.lt) for y in VERSIONS[i + 1 :]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the less than equal (<=) operator works correctly
-+                [
-+                    [(x, y, operator.le) for y in VERSIONS[i:]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the equal (==) operator works correctly
-+                [[(x, x, operator.eq) for x in VERSIONS]]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [
-+                    [(x, y, operator.ne) for j, y in enumerate(VERSIONS) if i != j]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the greater than equal (>=) operator works correctly
-+                [
-+                    [(x, y, operator.ge) for y in VERSIONS[: i + 1]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the greater than (>) operator works correctly
-+                [
-+                    [(x, y, operator.gt) for y in VERSIONS[:i]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_true(
-@@ -849,39 +851,41 @@ def test_comparison_true(
-         ("left", "right", "op"),
-         # Below we'll generate every possible combination of VERSIONS that
-         # should be False for the given operator
--        itertools.chain.from_iterable(
--            # Verify that the less than (<) operator works correctly
--            [
--                [(x, y, operator.lt) for y in VERSIONS[: i + 1]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the less than equal (<=) operator works correctly
--            [
--                [(x, y, operator.le) for y in VERSIONS[:i]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the equal (==) operator works correctly
--            [
--                [(x, y, operator.eq) for j, y in enumerate(VERSIONS) if i != j]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the not equal (!=) operator works correctly
--            [[(x, x, operator.ne) for x in VERSIONS]]
--            +
--            # Verify that the greater than equal (>=) operator works correctly
--            [
--                [(x, y, operator.ge) for y in VERSIONS[i + 1 :]]
--                for i, x in enumerate(VERSIONS)
--            ]
--            +
--            # Verify that the greater than (>) operator works correctly
--            [
--                [(x, y, operator.gt) for y in VERSIONS[i:]]
--                for i, x in enumerate(VERSIONS)
--            ]
-+        list(
-+            itertools.chain.from_iterable(
-+                # Verify that the less than (<) operator works correctly
-+                [
-+                    [(x, y, operator.lt) for y in VERSIONS[: i + 1]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the less than equal (<=) operator works correctly
-+                [
-+                    [(x, y, operator.le) for y in VERSIONS[:i]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the equal (==) operator works correctly
-+                [
-+                    [(x, y, operator.eq) for j, y in enumerate(VERSIONS) if i != j]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the not equal (!=) operator works correctly
-+                [[(x, x, operator.ne) for x in VERSIONS]]
-+                +
-+                # Verify that the greater than equal (>=) operator works correctly
-+                [
-+                    [(x, y, operator.ge) for y in VERSIONS[i + 1 :]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+                +
-+                # Verify that the greater than (>) operator works correctly
-+                [
-+                    [(x, y, operator.gt) for y in VERSIONS[i:]]
-+                    for i, x in enumerate(VERSIONS)
-+                ]
-+            )
-         ),
-     )
-     def test_comparison_false(

diff --git a/python-packaging.spec b/python-packaging.spec
index 1142e35..c1c2c46 100644
--- a/python-packaging.spec
+++ b/python-packaging.spec
@@ -21,7 +21,7 @@
 %endif
 
 Name:           python-%{pypi_name}
-Version:        26.2
+Version:        26.3
 Release:        %autorelease
 Summary:        Core utilities for Python packages
 
@@ -29,8 +29,6 @@ License:        BSD-2-Clause OR Apache-2.0
 URL:            https://github.com/pypa/packaging
 Source0:        %{url}/archive/%{version}/%{pypi_name}-%{version}.tar.gz
 
-# Fix test compatibility with pytest >= 9.1 (non-Collection parametrize)
-Patch:          https://github.com/pypa/packaging/commit/155760e3.patch
 
 BuildArch:      noarch
 

diff --git a/sources b/sources
index 0b75e77..6283167 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (packaging-26.2.tar.gz) = 28a93b2c3ff099eb4ebe82ac09d3c7e7260de37918558d495e2d84a1a8f67603b4b9adb87633ee3d00d953fc0ed50f8b54f573c97ece134fa9b3f5eb636bf05f
+SHA512 (packaging-26.3.tar.gz) = 7559e4f0376c775f57c362394ba276451bee0952012fc461458ee450e86fe89909166bb11c217be100b7909f0958f4ee9df4b51c3019e664186fda06a48d810d

                 reply	other threads:[~2026-08-17 12:57 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=178697147517.1.3407651608052428103.rpms-python-packaging-5531ee310c5e@fedoraproject.org \
    --to=lbalhar@redhat.com \
    --cc=git-commits@fedoraproject.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