diff options
| -rw-r--r-- | debian/changelog | 13 | ||||
| -rw-r--r-- | debian/control | 20 | ||||
| -rw-r--r-- | debian/patches/155760e37acbe24bf82444f21e805006ef0b58c8.patch | 302 | ||||
| -rw-r--r-- | debian/patches/series | 1 | ||||
| -rwxr-xr-x | debian/rules | 2 | ||||
| -rw-r--r-- | debian/salsa-ci.yml | 14 | ||||
| -rw-r--r-- | debian/upstream/metadata | 5 | ||||
| -rw-r--r-- | debian/watch | 8 |
8 files changed, 351 insertions, 14 deletions
diff --git a/debian/changelog b/debian/changelog index 7261e4b..599dfc3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +python-packaging (26.2-2) unstable; urgency=medium + + * Team upload. + * Add upstream patch for Pytest 9.1 compatibility (Closes: #1140881) + * Salsa: test <!nocheck> profile + * Tag test build-dependencies as <!nocheck> + * Use dh-sequence-python3 + * Bump Standards-Version to 4.7.4, drop Priority: tag + * Rewrite d/watch in v5 format + * Add debian/upstream/metadata + + -- Alexandre Detiste <tchet@debian.org> Sun, 28 Jun 2026 01:15:17 +0200 + python-packaging (26.2-1) unstable; urgency=medium * Team upload. diff --git a/debian/control b/debian/control index 0ce9132..7ffb3bf 100644 --- a/debian/control +++ b/debian/control @@ -1,18 +1,18 @@ Source: python-packaging Section: python -Priority: optional Maintainer: Debian Python Team <team+python@tracker.debian.org> Uploaders: Matthias Klose <doko@debian.org>, Dmitry Shachnev <mitya57@debian.org> -Build-Depends: debhelper-compat (= 13), - dh-python, - python3-all, - python3-hypothesis, - python3-pretend, - python3-pyparsing, - python3-pytest, - pybuild-plugin-pyproject, +Build-Depends: + debhelper-compat (= 13), + dh-sequence-python3, flit, -Standards-Version: 4.7.2 + pybuild-plugin-pyproject, + python3-all, + python3-hypothesis <!nocheck>, + python3-pretend <!nocheck>, + python3-pyparsing <!nocheck>, + python3-pytest <!nocheck>, +Standards-Version: 4.7.4 Homepage: https://github.com/pypa/packaging Vcs-Git: https://salsa.debian.org/python-team/packages/python-packaging.git Vcs-Browser: https://salsa.debian.org/python-team/packages/python-packaging diff --git a/debian/patches/155760e37acbe24bf82444f21e805006ef0b58c8.patch b/debian/patches/155760e37acbe24bf82444f21e805006ef0b58c8.patch new file mode 100644 index 0000000..b43fafe --- /dev/null +++ b/debian/patches/155760e37acbe24bf82444f21e805006ef0b58c8.patch @@ -0,0 +1,302 @@ +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(-) + +--- a/tests/test_specifiers.py ++++ b/tests/test_specifiers.py +@@ -244,15 +244,17 @@ + + @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( +@@ -273,15 +275,17 @@ + + @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( +@@ -2261,15 +2265,17 @@ + + @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( +@@ -2283,15 +2289,17 @@ + + @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( +--- a/tests/test_version.py ++++ b/tests/test_version.py +@@ -805,39 +805,41 @@ + ("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 @@ + ("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/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..f6732b3 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +155760e37acbe24bf82444f21e805006ef0b58c8.patch diff --git a/debian/rules b/debian/rules index 1c02505..25a7a1e 100755 --- a/debian/rules +++ b/debian/rules @@ -10,4 +10,4 @@ export PYBUILD_AFTER_INSTALL=mkdir -p $(WHEELS_DIR) && cp {home_dir}/*.whl $(WHE export PYBUILD_DISABLE_pypy=test %: - dh $@ --with python3 --buildsystem=pybuild + dh $@ --buildsystem=pybuild diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml index 26871b9..0e848f1 100644 --- a/debian/salsa-ci.yml +++ b/debian/salsa-ci.yml @@ -1,2 +1,16 @@ +--- include: - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml + +variables: + SALSA_CI_DISABLE_BLHC: 1 + SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 1 + SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1 + SALSA_CI_ENABLE_BUILD_PACKAGE_PROFILES: 1 + +test-build-profiles: + extends: .test-build-package-profiles + parallel: + matrix: + - BUILD_PROFILES: nocheck +# - BUILD_PROFILES: nodoc diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..85701af --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,5 @@ +--- +Bug-Database: https://github.com/pypa/packaging/issues +Documentation: https://packaging.pypa.io/ +Repository: https://github.com/pypa/packaging.git +Repository-Browse: https://github.com/pypa/packaging diff --git a/debian/watch b/debian/watch index 2f5f69d..65eb5b0 100644 --- a/debian/watch +++ b/debian/watch @@ -1,3 +1,5 @@ -version=4 -opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ -https://pypi.debian.net/packaging/packaging-(.*)\.(?:tar\.gz|zip) +Version: 5 + +Source: https://pypi.debian.net/packaging/ +Matching-Pattern: packaging-(.*)\.(?:tar\.gz|zip) +Uversionmangle: s/(rc|a|b|c)/~$1/ |
