pdm-project / pdm-backend

The build backend used by PDM that supports latest packaging standards.
https://backend.pdm-project.org
MIT License
69 stars 33 forks source link

Please update the legacy branch for packaging-22 #146

Closed mgorny closed 1 year ago

mgorny commented 1 year ago

The legacy branch of pdm doesn't seem to work with packaging-22:

Traceback (most recent call last):                                                                                                     
  File "/usr/lib/python-exec/pypy3/gpep517", line 4, in <module>                                                                       
    sys.exit(main())                                                                                                                   
  File "/usr/lib/pypy3.9/site-packages/gpep517/__main__.py", line 406, in main
    return func(args)
  File "/usr/lib/pypy3.9/site-packages/gpep517/__main__.py", line 202, in build_wheel
    print(build_wheel_impl(args, args.wheel_dir), file=out)
  File "/usr/lib/pypy3.9/site-packages/gpep517/__main__.py", line 185, in build_wheel_impl
    backend = importlib.import_module(package)
  File "/usr/lib/pypy3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked 
  File "<builtin>/frozen importlib._bootstrap_external", line 865, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/api.py", line 10, in <module>
    from pdm.pep517.editable import EditableBuilder
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/editable.py", line 13, in <module>
    from pdm.pep517.wheel import WheelBuilder
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/wheel.py", line 25, in <module>
    from pdm.pep517.base import Builder
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/base.py", line 12, in <module>
    from pdm.pep517.metadata import Metadata
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/metadata.py", line 20, in <module>
    from pdm.pep517.version import DynamicVersion
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/version.py", line 10, in <module>
    from pdm.pep517.scm import get_version_from_scm
  File "/tmp/portage/dev-python/pdm-pep517-1.1.0/work/pdm-backend-1.1.0/./pdm/pep517/scm.py", line 17, in <module>
    from packaging.version import LegacyVersion, Version
ImportError: cannot import name 'LegacyVersion' from 'packaging.version' (/usr/lib/pypy3.9/site-packages/packaging/version.py)

This is a blocker-class problem for Linux distributions such as Gentoo that do not tolerate vendored dependencies, as setuptools now requires new packaging and therefore we cannot support both coexisting.

mgorny commented 1 year ago

Thanks!