Hi,
happy new year to you all!
Not only the Python version in bookworm is moving right now, due some
side effect around that also the PDM build backend is moving fast.
I was working around the Xmas days on one of the packages I usually take
care on (python-griffe [1]) to get an new upstream version ready for
uploading. While doing I noticed that my local work was not building
successful anymore due a new version of python-packaging which has some
different structure of folders and files.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pep517/wrappers.py", line 319, in
_call_hook
raise BackendUnavailable(data.get('traceback', ''))
pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pep517/in_process/_in_process.py", line
77, in _build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/pdm/pep517/api.py", line 10, in <module>
from pdm.pep517.editable import EditableBuilder
File "/usr/lib/python3/dist-packages/pdm/pep517/editable.py", line 13, in
<module>
from pdm.pep517.wheel import WheelBuilder
File "/usr/lib/python3/dist-packages/pdm/pep517/wheel.py", line 24, in
<module>
from pdm.pep517.base import Builder
File "/usr/lib/python3/dist-packages/pdm/pep517/base.py", line 12, in <module>
from pdm.pep517.metadata import Metadata
File "/usr/lib/python3/dist-packages/pdm/pep517/metadata.py", line 20, in
<module>
from pdm.pep517.version import DynamicVersion
File "/usr/lib/python3/dist-packages/pdm/pep517/version.py", line 10, in
<module>
from pdm.pep517.scm import get_version_from_scm
File "/usr/lib/python3/dist-packages/pdm/pep517/scm.py", line 17, in <module>
from packaging.version import LegacyVersion, Version
ImportError: cannot import name 'LegacyVersion' from 'packaging.version'
(/usr/lib/python3/dist-packages/packaging/version.py)
ERROR Backend 'pdm.pep517.api' is not available.
E: pybuild pybuild:386: build: plugin pyproject failed with: exit code=1:
python3.11 -m build --skip-dependency-check --no-isolation --wheel --outdir
/build/python-griffe-0.25.2/.pybuild/cpython3_3.11_griffe
The same build issue can now be found on recent FTBFS issue reports done
by Lucas archive rebuilds.
While trying to understand what has changed I noticed also that
src:pdm-pep517 [2] got an upstream update to (Thanks Boyuan Yang for
packaging it!).
But, pdm-pep517 got also a renaming on the upstream side to pdm-backend [3].
I've done a rather quick and dirty import of the new version on top of
the existing tree from src:pdm-517 to investigate things further.
After using the updated python3-pdm-pep517 package I see another PDM
related package that will need an update.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pep517/wrappers.py", line 319, in
_call_hook
raise BackendUnavailable(data.get('traceback', ''))
pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pep517/in_process/_in_process.py", line
77, in _build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pdm.pep517'
The package failing while importing here is python3-pep517 (src:pep517 [4]).
But again as for pdm-pep517, also pep517 is renamed on the upstream side
to pyproject-hooks [5].
I haven't done yet any local work on updating src:pep517 as I wanted to
ask here on the list how to handle these two updated and renamed
upstream projects.
The first one, src:pdm-pep517 seems not that difficult as it's only
living in unstable and testing and the packages that are using the
existing package as build dependency is rather small.
The second one, src:pep517 needs an transition to a new source package
and also to a new binary package to me. And now it can get complicated,
given we are about 4 weeks away from the first freeze step of the RMs.
What do other think?
I've attached DD listings about the usage of python3-pep517 and
python3-pdm-pep517.
[1] https://tracker.debian.org/pkg/python-griffe
[2] https://tracker.debian.org/pkg/pdm-pep517
[3] https://github.com/pdm-project/pdm-backend
[4] https://tracker.debian.org/pkg/pep517
[5] https://github.com/pypa/pyproject-hooks
--
Regards
Carsten