Source: poetry-core
Version: 1.6.1-1
Severity: minor
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-binary-20230816 ftbfs-binary-after-build
User: [email protected]
Usertags: qa-doublebuild

Hi,

This package fails to do build a binary-only build (not source) after a
successful build (dpkg-buildpackage ; dpkg-buildpackage -b).

This is probably a clear violation of Debian Policy section 4.9 (clean target),
but this is filed as severity:minor for now, because a discussion on
debian-devel showed that we might want to revisit the requirement of a working
'clean' target.

More information about this class of issues, included common problems and
solutions, is available at
https://wiki.debian.org/qa.debian.org/FTBFS/DoubleBuild

Relevant part of the build log:
> cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage --sanitize-env 
> -us -uc -rfakeroot -b
> -----------------------------------------------------------------------------------------------------------------------------
> 
> dpkg-buildpackage: info: source package poetry-core
> dpkg-buildpackage: info: source version 1.6.1-1
> dpkg-buildpackage: info: source distribution unstable
> dpkg-buildpackage: info: source changed by Emmanuel Arias <[email protected]>
>  dpkg-source --before-build .
> dpkg-buildpackage: info: host architecture amd64
> dpkg-source: info: using options from 
> poetry-core-1.6.1/debian/source/options: --extend-diff-ignore=^[^/]+.egg-info/
>  debian/rules clean
> dh clean --with python3 --buildsystem=pybuild
>    dh_auto_clean -O--buildsystem=pybuild
>    dh_autoreconf_clean -O--buildsystem=pybuild
>    dh_clean -O--buildsystem=pybuild
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild plugin_pyproject:110: Building wheel for python3.11 with "build" 
> module
> I: pybuild base:291: python3.11 -m build --skip-dependency-check 
> --no-isolation --wheel --outdir 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core 
> * Building wheel...
> Successfully built poetry_core-1.6.1-py3-none-any.whl
> I: pybuild plugin_pyproject:122: Unpacking wheel built for python3.11 with 
> "installer" module
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:291: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build; python3.11 -m 
> pytest -k 'not test_version_is_synced'
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build
> plugins: mock-3.11.1
> collected 1974 items / 10 deselected / 1964 selected
> 
> tests/test_factory.py ..........................                         [  
> 1%]
> tests/constraints/generic/test_constraint.py ........................... [  
> 2%]
> .........................................                                [  
> 4%]
> tests/constraints/generic/test_main.py ..........                        [  
> 5%]
> tests/constraints/generic/test_multi_constraint.py ...                   [  
> 5%]
> tests/constraints/generic/test_union_constraint.py ...                   [  
> 5%]
> tests/constraints/version/test_helpers.py .............................. [  
> 7%]
> ........................................................................ [ 
> 10%]
> ...                                                                      [ 
> 10%]
> tests/constraints/version/test_parse_constraint.py ..................... [ 
> 12%]
> .........................................                                [ 
> 14%]
> tests/constraints/version/test_utils.py .......                          [ 
> 14%]
> tests/constraints/version/test_version.py .............................. [ 
> 15%]
> ........................................................................ [ 
> 19%]
> ........................................................................ [ 
> 23%]
> ........................                                                 [ 
> 24%]
> tests/constraints/version/test_version_constraint.py ....                [ 
> 24%]
> tests/constraints/version/test_version_range.py ........................ [ 
> 25%]
> ........................................................................ [ 
> 29%]
> ........................................................................ [ 
> 33%]
> .............................................                            [ 
> 35%]
> tests/constraints/version/test_version_union.py ........................ [ 
> 36%]
> .......................                                                  [ 
> 37%]
> tests/json/test_poetry_schema.py ......                                  [ 
> 38%]
> tests/masonry/test_api.py ......F..........                              [ 
> 39%]
> tests/masonry/test_builder.py .......                                    [ 
> 39%]
> tests/masonry/builders/test_builder.py ....................              [ 
> 40%]
> tests/masonry/builders/test_complete.py sss.......                       [ 
> 41%]
> tests/masonry/builders/test_sdist.py .............FFF...s..........      [ 
> 42%]
> tests/masonry/builders/test_wheel.py ...................s.FF             [ 
> 43%]
> tests/masonry/utils/test_helpers.py .....                                [ 
> 43%]
> tests/masonry/utils/test_package_include.py ........                     [ 
> 44%]
> tests/packages/test_dependency.py ...................................... [ 
> 46%]
> .......................................................                  [ 
> 49%]
> tests/packages/test_dependency_group.py .                                [ 
> 49%]
> tests/packages/test_directory_dependency.py .............                [ 
> 49%]
> tests/packages/test_file_dependency.py .......................           [ 
> 51%]
> tests/packages/test_main.py .........................                    [ 
> 52%]
> tests/packages/test_package.py ......................................... [ 
> 54%]
> ...................................                                      [ 
> 56%]
> tests/packages/test_specification.py ........................            [ 
> 57%]
> tests/packages/test_url_dependency.py ......                             [ 
> 57%]
> tests/packages/test_vcs_dependency.py ................                   [ 
> 58%]
> tests/packages/utils/test_utils.py ..................................... [ 
> 60%]
> ......................................                                   [ 
> 62%]
> tests/packages/utils/test_utils_link.py ...................              [ 
> 63%]
> tests/packages/utils/test_utils_urls.py .s........s                      [ 
> 63%]
> tests/pyproject/test_pyproject_toml.py ......                            [ 
> 64%]
> tests/spdx/test_helpers.py .....                                         [ 
> 64%]
> tests/spdx/test_license.py ........                                      [ 
> 64%]
> tests/utils/test_helpers.py ............                                 [ 
> 65%]
> tests/vcs/test_vcs.py .................................................. [ 
> 67%]
> .....ss                                                                  [ 
> 68%]
> tests/version/test_markers.py .......................................... [ 
> 70%]
> ........................................................................ [ 
> 74%]
> ........................................................................ [ 
> 77%]
> ........................................................................ [ 
> 81%]
> ........................                                                 [ 
> 82%]
> tests/version/test_requirements.py .............................         [ 
> 84%]
> tests/version/pep440/test_segments.py .................................. [ 
> 85%]
> ..............................................................           [ 
> 89%]
> tests/version/pep440/test_version.py ................................... [ 
> 90%]
> ........................................................................ [ 
> 94%]
> ........................................................................ [ 
> 98%]
> ....................................                                     
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________________ test_build_wheel_extended 
> ___________________________
> 
>     @pytest.mark.skipif(
>         sys.platform == "win32"
>         and sys.version_info <= (3, 6)
>         or platform.python_implementation().lower() == "pypy",
>         reason="Disable test on Windows for Python <=3.6 and for PyPy",
>     )
>     def test_build_wheel_extended() -> None:
> >       with temporary_directory() as tmp_dir, cwd(os.path.join(fixtures, 
> > "extended")):
> 
> tests/masonry/test_api.py:98: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> /usr/lib/python3.11/contextlib.py:137: in __enter__
>     return next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> directory = 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/tests/masonry/builders/fixtures/extended'
> 
>     @contextmanager
>     def cwd(directory: str | Path) -> Iterator[None]:
>         prev = os.getcwd()
> >       os.chdir(str(directory))
> E       FileNotFoundError: [Errno 2] No such file or directory: 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/tests/masonry/builders/fixtures/extended'
> 
> tests/masonry/test_api.py:29: FileNotFoundError
> _______________________ test_with_c_extensions[extended] 
> _______________________
> 
> directory = 'extended'
> 
>     @pytest.mark.parametrize("directory", ["extended", 
> "extended_legacy_config"])
>     def test_with_c_extensions(directory: str) -> None:
>         poetry = Factory().create_poetry(project("extended"))
>     
> >       builder = SdistBuilder(poetry)
> 
> tests/masonry/builders/test_sdist.py:352: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> poetry/core/masonry/builders/builder.py:85: in __init__
>     self._module = Module(
> poetry/core/masonry/utils/module.py:79: in __init__
>     PackageInclude(
> poetry/core/masonry/utils/package_include.py:29: in __init__
>     self.check_elements()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <poetry.core.masonry.utils.package_include.PackageInclude object at 
> 0x7fadc58a2550>
> 
>     def check_elements(self) -> PackageInclude:
>         if not self._elements:
> >           raise ValueError(
>                 f"{self._base / self._include} does not contain any element"
>             )
> E           ValueError: 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/src/poetry does not 
> contain any element
> 
> poetry/core/masonry/utils/package_include.py:66: ValueError
> ________________ test_with_c_extensions[extended_legacy_config] 
> ________________
> 
> directory = 'extended_legacy_config'
> 
>     @pytest.mark.parametrize("directory", ["extended", 
> "extended_legacy_config"])
>     def test_with_c_extensions(directory: str) -> None:
>         poetry = Factory().create_poetry(project("extended"))
>     
> >       builder = SdistBuilder(poetry)
> 
> tests/masonry/builders/test_sdist.py:352: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> poetry/core/masonry/builders/builder.py:85: in __init__
>     self._module = Module(
> poetry/core/masonry/utils/module.py:79: in __init__
>     PackageInclude(
> poetry/core/masonry/utils/package_include.py:29: in __init__
>     self.check_elements()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <poetry.core.masonry.utils.package_include.PackageInclude object at 
> 0x7fadc552cf10>
> 
>     def check_elements(self) -> PackageInclude:
>         if not self._elements:
> >           raise ValueError(
>                 f"{self._base / self._include} does not contain any element"
>             )
> E           ValueError: 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/src/poetry does not 
> contain any element
> 
> poetry/core/masonry/utils/package_include.py:66: ValueError
> ______________________ test_with_c_extensions_src_layout 
> _______________________
> 
>     def test_with_c_extensions_src_layout() -> None:
>         poetry = Factory().create_poetry(project("src_extended"))
>     
> >       builder = SdistBuilder(poetry)
> 
> tests/masonry/builders/test_sdist.py:367: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> poetry/core/masonry/builders/builder.py:85: in __init__
>     self._module = Module(
> poetry/core/masonry/utils/module.py:79: in __init__
>     PackageInclude(
> poetry/core/masonry/utils/package_include.py:29: in __init__
>     self.check_elements()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <poetry.core.masonry.utils.package_include.PackageInclude object at 
> 0x7fadc57c3950>
> 
>     def check_elements(self) -> PackageInclude:
>         if not self._elements:
> >           raise ValueError(
>                 f"{self._base / self._include} does not contain any element"
>             )
> E           ValueError: 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/src/poetry does not 
> contain any element
> 
> poetry/core/masonry/utils/package_include.py:66: ValueError
> ________________________________ test_tag[True] 
> ________________________________
> 
> in_venv_build = True
> mocker = <pytest_mock.plugin.MockerFixture object at 0x7fadc54696d0>
> 
>     @pytest.mark.parametrize("in_venv_build", [True, False])
>     def test_tag(in_venv_build: bool, mocker: MockerFixture) -> None:
>         """Tests that tag returns a valid tag if a build script is used,
>         no matter if poetry-core lives inside the build environment or not.
>         """
>         root = fixtures_dir / "extended"
> >       builder = WheelBuilder(Factory().create_poetry(root))
> 
> tests/masonry/builders/test_wheel.py:362: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> poetry/core/masonry/builders/wheel.py:62: in __init__
>     super().__init__(poetry, executable=executable)
> poetry/core/masonry/builders/builder.py:85: in __init__
>     self._module = Module(
> poetry/core/masonry/utils/module.py:79: in __init__
>     PackageInclude(
> poetry/core/masonry/utils/package_include.py:29: in __init__
>     self.check_elements()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <poetry.core.masonry.utils.package_include.PackageInclude object at 
> 0x7fadc5491610>
> 
>     def check_elements(self) -> PackageInclude:
>         if not self._elements:
> >           raise ValueError(
>                 f"{self._base / self._include} does not contain any element"
>             )
> E           ValueError: 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/src/poetry does not 
> contain any element
> 
> poetry/core/masonry/utils/package_include.py:66: ValueError
> _______________________________ test_tag[False] 
> ________________________________
> 
> in_venv_build = False
> mocker = <pytest_mock.plugin.MockerFixture object at 0x7fadc5230810>
> 
>     @pytest.mark.parametrize("in_venv_build", [True, False])
>     def test_tag(in_venv_build: bool, mocker: MockerFixture) -> None:
>         """Tests that tag returns a valid tag if a build script is used,
>         no matter if poetry-core lives inside the build environment or not.
>         """
>         root = fixtures_dir / "extended"
> >       builder = WheelBuilder(Factory().create_poetry(root))
> 
> tests/masonry/builders/test_wheel.py:362: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> poetry/core/masonry/builders/wheel.py:62: in __init__
>     super().__init__(poetry, executable=executable)
> poetry/core/masonry/builders/builder.py:85: in __init__
>     self._module = Module(
> poetry/core/masonry/utils/module.py:79: in __init__
>     PackageInclude(
> poetry/core/masonry/utils/package_include.py:29: in __init__
>     self.check_elements()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <poetry.core.masonry.utils.package_include.PackageInclude object at 
> 0x7fadc550ab90>
> 
>     def check_elements(self) -> PackageInclude:
>         if not self._elements:
> >           raise ValueError(
>                 f"{self._base / self._include} does not contain any element"
>             )
> E           ValueError: 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build/src/poetry does not 
> contain any element
> 
> poetry/core/masonry/utils/package_include.py:66: ValueError
> =========================== short test summary info 
> ============================
> FAILED tests/masonry/test_api.py::test_build_wheel_extended - 
> FileNotFoundErr...
> FAILED tests/masonry/builders/test_sdist.py::test_with_c_extensions[extended]
> FAILED 
> tests/masonry/builders/test_sdist.py::test_with_c_extensions[extended_legacy_config]
> FAILED tests/masonry/builders/test_sdist.py::test_with_c_extensions_src_layout
> FAILED tests/masonry/builders/test_wheel.py::test_tag[True] - ValueError: 
> /bu...
> FAILED tests/masonry/builders/test_wheel.py::test_tag[False] - ValueError: 
> /b...
> =========== 6 failed, 1949 passed, 9 skipped, 10 deselected in 7.74s 
> ===========
> E: pybuild pybuild:395: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_poetry-core/build; python3.11 -m 
> pytest -k 'not test_version_is_synced'
> dh_auto_test: error: pybuild --test -i python{version} -p 3.11 returned exit 
> code 13
> make: *** [debian/rules:11: binary] Error 25
> dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
> 2
> 
> E: Command 'cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage 
> --sanitize-env -us -uc -rfakeroot -b' failed to run.


The full build log is available from:
http://qa-logs.debian.net/2023/08/16/poetry-core_1.6.1-1_unstable.log

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to