Comment 76 for bug 1991606

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Sorry, I'm having a hard time understanding how the dput check shows that distro-info and python-debian are fixed. I'm guessing dput ends up importing the other two?

Shouldn't python-debian be a block-proposed-kinetic update, since it's currently unaffected due to its version being still fine regarding PEP440 rules??

In any case, I did a no-change rebuild locally just to add the "build1" suffix to the version and break the PEP440 check, and I think this is a simpler test case:

$ virtualenv --system-site-packages myenv
$ myenv/bin/python -m pip install -U setuptools
$ myenv/bin/python -c "import pkg_resources; pkg_resources.require('@BROKEN-PACKAGE@')"

For example, with my rebuild python-debian:
$ myenv/bin/python -c "import pkg_resources; pkg_resources.require('python-debian')"
<string>:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 968, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 854, in _resolve_dist
    if dist is None or (dist not in req and replace_conflicting):
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3205, in __contains__
    return self.specifier.contains(item, prereleases=True)
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/specifiers.py", line 905, in contains
    item = Version(item)
  File "/home/ubuntu/myenv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/version.py", line 198, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '0.1.46build1'

And with your package in proposed, the crash does not happen:

ubuntu@k-pep440:~$ myenv/bin/python -c "import pkg_resources; pkg_resources.require('python-debian')"
<string>:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

ubuntu@k-pep440:~$ dpkg -s python3-debian | grep ^Version
Version: 0.1.46ubuntu1

The dep8 migration-reference/0 runs for devscripts did fail as expected, but the Pending SRU report hasn't picked that up yet, so I'm no keen on releasing python-debian for kinetic just yet. And for jammy and earlier, we currently have this issue with britney[1] that needs resolving first.

1. https://lists.ubuntu.com/archives/ubuntu-release/2023-June/005670.html