Bug 2480529

Summary: python-pdm-backend: FTBFS in Fedora Rawhide: AssertionError: assert 'demo_package.pth' in ['.gitignore', '_editable_impl_demo_package.pth', 'demo_package-0.1.0.dist-info/METADATA', 'demo_package-0.1.0.dist-info/WHEEL', 'demo_package-0.1.0.dist-info/entry_
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-pdm-backendAssignee: Karolina Surma <ksurma>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: lbalhar, python-packagers-sig
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://koschei.fedoraproject.org/package/python-pdm-backend
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-06-29 08:05:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2412434, 2433833    

Description Karolina Surma 2026-05-21 15:11:23 UTC
Description of problem:
Package python-pdm-backend fails to build from source in Fedora Rawhide. Judging from koschei diffs, probably caused by editables update.

Version-Release number of selected component (if applicable):
2.4.8-1.fc45

Steps to Reproduce:
koji build --scratch f45 python-pdm-backend-2.4.8-1.fc45.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-pdm-backend

Reproducible: Always

Actual Results:
______________________ test_build_editable[demo-package] _______________________
dist = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_demo_packa0/dist')
fixture_project = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_demo_packa0/demo-package')
    @pytest.mark.parametrize("name", ["demo-package"])
    def test_build_editable(dist: Path, fixture_project: Path) -> None:
        wheel_name = api.build_editable(dist.as_posix())
        assert api.get_requires_for_build_editable() == []
        with zipfile.ZipFile(dist / wheel_name) as zf:
            namelist = zf.namelist()
>           assert "demo_package.pth" in namelist
E           AssertionError: assert 'demo_package.pth' in ['.gitignore', '_editable_impl_demo_package.pth', '_editable_impl_demo_package.py', 'demo_package-0.1.0.dist-info/METADATA', 'demo_package-0.1.0.dist-info/WHEEL', 'demo_package-0.1.0.dist-info/entry_points.txt', ...]
/builddir/build/BUILD/python-pdm-backend-2.4.8-build/pdm_backend-2.4.8/tests/test_api.py:320: AssertionError
----------------------------- Captured stdout call -----------------------------
 - Adding .pdm-build/.gitignore -> .gitignore
 - Adding .pdm-build/_editable_impl_demo_package.pth -> _editable_impl_demo_package.pth
 - Adding .pdm-build/_editable_impl_demo_package.py -> _editable_impl_demo_package.py
 - Adding .pdm-build/demo_package-0.1.0.dist-info/METADATA -> demo_package-0.1.0.dist-info/METADATA
 - Adding .pdm-build/demo_package-0.1.0.dist-info/WHEEL -> demo_package-0.1.0.dist-info/WHEEL
 - Adding .pdm-build/demo_package-0.1.0.dist-info/entry_points.txt -> demo_package-0.1.0.dist-info/entry_points.txt
 - Adding .pdm-build/demo_package-0.1.0.dist-info/licenses/LICENSE -> demo_package-0.1.0.dist-info/licenses/LICENSE
 - Adding demo_package-0.1.0.dist-info/RECORD -> demo_package-0.1.0.dist-info/RECORD
______________ test_build_editable_src[demo-src-package-include] _______________
dist = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_src_demo_s0/dist')
fixture_project = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_src_demo_s0/demo-src-package-include')
    @pytest.mark.parametrize("name", ["demo-src-package-include"])
    def test_build_editable_src(dist: Path, fixture_project: Path) -> None:
        wheel_name = api.build_editable(dist.as_posix())
    
        with zipfile.ZipFile(dist / wheel_name) as zf:
            namelist = zf.namelist()
>           assert "demo_package.pth" in namelist
E           AssertionError: assert 'demo_package.pth' in ['.gitignore', '_editable_impl_demo_package.pth', '_editable_impl_demo_package.py', 'data_out.json', 'demo_package-0.1.0.dist-info/METADATA', 'demo_package-0.1.0.dist-info/WHEEL', ...]
/builddir/build/BUILD/python-pdm-backend-2.4.8-build/pdm_backend-2.4.8/tests/test_api.py:348: AssertionError
----------------------------- Captured stdout call -----------------------------
 - Adding .pdm-build/.gitignore -> .gitignore
 - Adding .pdm-build/_editable_impl_demo_package.pth -> _editable_impl_demo_package.pth
 - Adding .pdm-build/_editable_impl_demo_package.py -> _editable_impl_demo_package.py
 - Adding data_out.json -> data_out.json
 - Adding .pdm-build/demo_package-0.1.0.dist-info/METADATA -> demo_package-0.1.0.dist-info/METADATA
 - Adding .pdm-build/demo_package-0.1.0.dist-info/WHEEL -> demo_package-0.1.0.dist-info/WHEEL
 - Adding .pdm-build/demo_package-0.1.0.dist-info/entry_points.txt -> demo_package-0.1.0.dist-info/entry_points.txt
 - Adding .pdm-build/demo_package-0.1.0.dist-info/licenses/LICENSE -> demo_package-0.1.0.dist-info/licenses/LICENSE
 - Adding demo_package-0.1.0.dist-info/RECORD -> demo_package-0.1.0.dist-info/RECORD
_______________ test_build_editable_pep420[demo-pep420-package] ________________
dist = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_pep420_dem0/dist')
fixture_project = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/test_build_editable_pep420_dem0/demo-pep420-package')
    @pytest.mark.parametrize("name", ["demo-pep420-package"])
    def test_build_editable_pep420(dist: Path, fixture_project: Path) -> None:
        with pytest.warns(UserWarning) as recorded:
            wheel_name = api.build_editable(dist.as_posix())
    
        assert len(recorded) == 1
        assert str(recorded.pop().message).startswith("editables backend is not available")
    
        with zipfile.ZipFile(dist / wheel_name) as zf:
            namelist = zf.namelist()
>           assert "demo_package.pth" in namelist
E           AssertionError: assert 'demo_package.pth' in ['.gitignore', '_editable_impl_demo_package.pth', 'demo_package-0.1.0.dist-info/METADATA', 'demo_package-0.1.0.dist-info/WHEEL', 'demo_package-0.1.0.dist-info/entry_points.txt', 'demo_package-0.1.0.dist-info/licenses/LICENSE', ...]
/builddir/build/BUILD/python-pdm-backend-2.4.8-build/pdm_backend-2.4.8/tests/test_api.py:378: AssertionError
----------------------------- Captured stdout call -----------------------------
 - Adding .pdm-build/.gitignore -> .gitignore
 - Adding .pdm-build/_editable_impl_demo_package.pth -> _editable_impl_demo_package.pth
 - Adding .pdm-build/demo_package-0.1.0.dist-info/METADATA -> demo_package-0.1.0.dist-info/METADATA
 - Adding .pdm-build/demo_package-0.1.0.dist-info/WHEEL -> demo_package-0.1.0.dist-info/WHEEL
 - Adding .pdm-build/demo_package-0.1.0.dist-info/entry_points.txt -> demo_package-0.1.0.dist-info/entry_points.txt
 - Adding .pdm-build/demo_package-0.1.0.dist-info/licenses/LICENSE -> demo_package-0.1.0.dist-info/licenses/LICENSE
 - Adding demo_package-0.1.0.dist-info/RECORD -> demo_package-0.1.0.dist-info/RECORD
=========================== short test summary info ============================
FAILED tests/test_api.py::test_build_editable[demo-package] - AssertionError:...
FAILED tests/test_api.py::test_build_editable_src[demo-src-package-include]
FAILED tests/test_api.py::test_build_editable_pep420[demo-pep420-package] - A...
=================== 3 failed, 91 passed, 1 skipped in 16.81s ===================