summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorAlexandre Detiste <tchet@debian.org>2026-06-28 01:15:17 +0200
committergit-ubuntu importer <ubuntu-devel-discuss@lists.ubuntu.com>2026-06-28 04:37:52 +0000
commit19b226d69fa9843660f1421207c2b43d12f106e9 (patch)
tree5bdf7608b292f2d013e823789c1cab8c173e72bf /debian
parent8011cc1a3fc35338f4d89ce7ea4dae30e206bf60 (diff)
Imported using git-ubuntu import.
Notes
Notes: * 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
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog13
-rw-r--r--debian/control20
-rw-r--r--debian/patches/155760e37acbe24bf82444f21e805006ef0b58c8.patch302
-rw-r--r--debian/patches/series1
-rwxr-xr-xdebian/rules2
-rw-r--r--debian/salsa-ci.yml14
-rw-r--r--debian/upstream/metadata5
-rw-r--r--debian/watch8
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/