• Bug#1100252: poetry-plugin-export: FTBFS: E assert 'bar==1.1.0 ;...ion

    From Santiago Vila@21:1/5 to All on Wed Mar 12 17:40:10 2025
    Package: src:poetry-plugin-export
    Version: 1.9.0-1
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

    During a rebuild of all packages in unstable, your package failed to build:

    --------------------------------------------------------------------------------
    [...]
    debian/rules clean
    dh clean --with python3 --buildsystem=pybuild
    debian/rules override_dh_auto_clean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    find . -iname '*.pyc' -delete
    for i in $(find . -type d -iname __pycache__) ; do rm -rf $i ; done
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    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

    [... snipped ...]

    ("PyPI", Priority.SUPPLEMENTAL),
    ],
    ("", "a", "b"),
    ),
    ],
    )
    @pytest.mark.parametrize("lock_version", ("1.1", "2.1"))
    def test_exporter_index_urls(
    tmp_path: Path,
    poetry: Poetry,
    priorities: list[tuple[str, Priority]],
    expected: tuple[str, ...],
    lock_version: str,
    ) -> None:
    pypi = poetry.pool.repository("PyPI")
    poetry.pool.remove_repository("PyPI")
    for name, prio in priorities:
    if name.lower() == "pypi":
    repo = pypi
    else:
    repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple")
    poetry.pool.add_repository(repo, priority=prio)

    lock_data: dict[str, Any] = {
    "package": [
    {
    "name": "foo",
    "version": "1.2.3",
    "optional": False,
    "python-versions": "*",
    "source": {
    "type": "legacy",
    "url": "https://a.example.com/simple",
    "reference": "",
    },
    },
    {
    "name": "bar",
    "version": "4.5.6",
    "optional": False,
    "python-versions": "*",
    "source": {
    "type": "legacy",
    "url": "https://b.example.com/simple",
    "reference": "",
    },
    },
    ],
    "metadata": {
    "lock-version": lock_version,
    "python-versions": "*",
    "content-hash": "123456789",
    "files": {
    "foo": [{"name": "foo.whl", "hash": "12345"}],
    "bar": [{"name": "bar.whl", "hash": "67890"}],
    },
    },
    }
    fix_lock_data(lock_data)
    if lock_version == "2.1":
    lock_data["package"][0]["groups"] = ["dev"]
    poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined]
    set_package_requires(poetry, dev={"bar"})

    exporter = Exporter(poetry, NullIO())
    exporter.only_groups([MAIN_GROUP, "dev"])
    exporter.export("requirements.txt", tmp_path, "requirements.txt")

    with (tmp_path / "requirements.txt").open(encoding="utf-8") as f:
    content = f.read()

    expected_urls = [
    f"--extra-index-url https://{name[-1]}.example.com/simple"
    for name in expected[1:]
    ]
    if expected[0]:
    expected_urls = [
    f"--index-url https://{expected[0]}.example.com/simple",
    *expected_urls,
    ]
    url_string = "\n".join(expected_urls)

    expected_content = f"""\
    {url_string}

    bar==4.5.6 ; {MARKER_PY} \\
    --hash=sha256:67890
    foo==1.2.3 ; {MARKER_PY} \\
    --hash=sha256:12345
    """

    assert content == expected_content
    E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' E
    E Skipping 113 identical leading characters in diff, use -v to show
    E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \
    E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^
    E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \
    E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^
    E --hash=sha256:67890...
    E
    E ...Full output truncated (5 lines hidden), use '-vv' to show

    tests/test_exporter.py:3175: AssertionError
    ------------------------------ Captured log setup ------------------------------
    WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead.
    _____________ test_exporter_index_urls[2.1-priorities6-expected6] ______________
    [gw0] linux -- Python 3.13.2 /usr/bin/python3.13

    tmp_path = PosixPath('/tmp/pytest-of-buildd/pytest-0/popen-gw0/test_exporter_index_urls_2_1_p6')
    poetry = <poetry.poetry.Poetry object at 0x7fea61263890>
    priorities = [('custom-a', <Priority.PRIMARY: 1>), ('custom-b', <Priority.PRIMARY: 1>), ('PyPI', <Priority.SUPPLEMENTAL: 2>)]
    expected = ('', 'a', 'b'), lock_version = '2.1'

    @pytest.mark.parametrize(
    ("priorities", "expected"),
    [
    ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")),
    ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")),
    (
    [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)],
    ("a", "b"),
    ),
    ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")),
    (
    [
    ("PyPI", Priority.PRIMARY),
    ("custom-a", Priority.PRIMARY),
    ("custom-b", Priority.PRIMARY),
    ],
    ("", "a", "b"),
    ),
    (
    [
    ("PyPI", Priority.EXPLICIT),
    ("custom-a", Priority.PRIMARY),
    ("custom-b", Priority.PRIMARY),
    ],
    ("", "a", "b"),
    ),
    (
    [
    ("custom-a", Priority.PRIMARY),
    ("custom-b", Priority.PRIMARY),
    ("PyPI", Priority.SUPPLEMENTAL),
    ],
    ("", "a", "b"),
    ),
    ],
    )
    @pytest.mark.parametrize("lock_version", ("1.1", "2.1"))
    def test_exporter_index_urls(
    tmp_path: Path,
    poetry: Poetry,
    priorities: list[tuple[str, Priority]],
    expected: tuple[str, ...],
    lock_version: str,
    ) -> None:
    pypi = poetry.pool.repository("PyPI")
    poetry.pool.remove_repository("PyPI")
    for name, prio in priorities:
    if name.lower() == "pypi":
    repo = pypi
    else:
    repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple")
    poetry.pool.add_repository(repo, priority=prio)

    lock_data: dict[str, Any] = {
    "package": [
    {
    "name": "foo",
    "version": "1.2.3",
    "optional": False,
    "python-versions": "*",
    "source": {
    "type": "legacy",
    "url": "https://a.example.com/simple",
    "reference": "",
    },
    },
    {
    "name": "bar",
    "version": "4.5.6",
    "optional": False,
    "python-versions": "*",
    "source": {
    "type": "legacy",
    "url": "https://b.example.com/simple",
    "reference": "",
    },
    },
    ],
    "metadata": {
    "lock-version": lock_version,
    "python-versions": "*",
    "content-hash": "123456789",
    "files": {
    "foo": [{"name": "foo.whl", "hash": "12345"}],
    "bar": [{"name": "bar.whl", "hash": "67890"}],
    },
    },
    }
    fix_lock_data(lock_data)
    if lock_version == "2.1":
    lock_data["package"][0]["groups"] = ["dev"]
    poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined]
    set_package_requires(poetry, dev={"bar"})

    exporter = Exporter(poetry, NullIO())
    exporter.only_groups([MAIN_GROUP, "dev"])
    exporter.export("requirements.txt", tmp_path, "requirements.txt")

    with (tmp_path / "requirements.txt").open(encoding="utf-8") as f:
    content = f.read()

    expected_urls = [
    f"--extra-index-url https://{name[-1]}.example.com/simple"
    for name in expected[1:]
    ]
    if expected[0]:
    expected_urls = [
    f"--index-url https://{expected[0]}.example.com/simple",
    *expected_urls,
    ]
    url_string = "\n".join(expected_urls)

    expected_content = f"""\
    {url_string}

    bar==4.5.6 ; {MARKER_PY} \\
    --hash=sha256:67890
    foo==1.2.3 ; {MARKER_PY} \\
    --hash=sha256:12345
    """

    assert content == expected_content
    E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' E
    E Skipping 113 identical leading characters in diff, use -v to show
    E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \
    E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^
    E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \
    E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^
    E --hash=sha256:67890...
    E
    E ...Full output truncated (5 lines hidden), use '-vv' to show

    tests/test_exporter.py:3175: AssertionError
    ------------------------------ Captured log setup ------------------------------
    WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead.
    _______________________ test_dependency_walk_error[2.1] ________________________
    [gw0] linux -- Python 3.13.2 /usr/bin/python3.13

    tmp_path = PosixPath('/tmp/pytest-of-buildd/pytest-0/popen-gw0/test_dependency_walk_error_2_10')
    poetry = <poetry.poetry.Poetry object at 0x7fea604f2a30>, lock_version = '2.1'

    @pytest.mark.parametrize("lock_version", ("1.1", "2.1"))
    def test_dependency_walk_error(
    tmp_path: Path, poetry: Poetry, lock_version: str
    ) -> None:
    """
    With lock file version 2.1 we can export lock files
    that resulted in a DependencyWalkerError with lower lock file versions.

    root
    ├── foo >=0 ; python_version < "3.9"
    ├── foo >=1 ; python_version >= "3.9"
    ├── bar ==1 ; python_version < "3.9"
    │ └── foo ==1 ; python_version < "3.9"
    └── bar ==2 ; python_version >= "3.9"
    └── foo ==2 ; python_version >= "3.9"

    Only considering the root dependency, foo 2 is a valid solution
    for all environments. However, due to bar depending on foo,
    foo 1 must be chosen for Python 3.8 and lower.
    """
    lock_data: dict[str, Any] = {
    "package": [
    {
    "name": "foo",
    "version": "1",
    "optional": False,
    "python-versions": "*",
    },
    {
    "name": "foo",
    "version": "2",
    "optional": False,
    "python-versions": "*",
    },
    {
    "name": "bar",
    "version": "1",
    "optional": False,
    "python-versions": "*",
    "dependencies": {"foo": "1"},
    },
    {
    "name": "bar",
    "version": "2",
    "optional": False,
    "python-versions": "*",
    "dependencies": {"foo": "2"},
    },
    ],
    "metadata": {
    "lock-version": lock_version,
    "python-versions": "*",
    "content-hash": "123456789",
    "files": {"foo": [], "bar": []},
    },
    }
    fix_lock_data(lock_data)
    if lock_version == "2.1":
    lock_data["package"][0]["markers"] = "python_version < '3.9'"
    lock_data["package"][1]["markers"] = "python_version >= '3.9'"
    lock_data["package"][2]["markers"] = "python_version < '3.9'"
    lock_data["package"][3]["markers"] = "python_version >= '3.9'"
    poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined]
    poetry.package.python_versions = "^3.8"
    poetry.package.add_dependency(
    Factory.create_dependency(
    name="foo", constraint={"version": ">=0", "python": "<3.9"}
    )
    )
    poetry.package.add_dependency(
    Factory.create_dependency(
    name="foo", constraint={"version": ">=1", "python": ">=3.9"}
    )
    )
    poetry.package.add_dependency(
    Factory.create_dependency(
    name="bar", constraint={"version": "1", "python": "<3.9"}
    )
    )
    poetry.package.add_dependency(
    Factory.create_dependency(
    name="bar", constraint={"version": "2", "python": ">=3.9"}
    )
    )

    exporter = Exporter(poetry, NullIO())
    if lock_version == "1.1":
    with pytest.raises(DependencyWalkerError):
    exporter.export("requirements.txt", tmp_path, "requirements.txt")
    return

    exporter.export("requirements.txt", tmp_path, "requirements.txt")

    with (tmp_path / "requirements.txt").open(encoding="utf-8") as f:
    content = f.read()

    expected = """\
    bar==1 ; python_version >= "3.8" and python_version < "3.9"
    bar==2 ; python_version >= "3.9" and python_version < "4.0"
    foo==1 ; python_version >= "3.8" and python_version < "3.9"
    foo==2 ; python_version >= "3.9" and python_version < "4.0"
    """

    assert content == expected
    E assert 'bar==1 ; pyt...ion < "4.0"\n' == 'bar==1 ; pyt...ion < "4.0"\n' E
    E - bar==1 ; python_version >= "3.8" and python_version < "3.9"
    E + bar==1 ; python_version == "3.8"
    E bar==2 ; python_version >= "3.9" and python_version < "4.0"
    E - foo==1 ; python_version >= "3.8" and python_version < "3.9"
    E + foo==1 ; python_version == "3.8"
    E foo==2 ; python_version >= "3.9" and python_version < "4.0"

    tests/test_exporter.py:3281: AssertionError
    ------------------------------ Captured log setup ------------------------------
    WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead.
    =========================== short test summary info ============================
    FAILED tests/command/test_command_export.py::test_export_exports_requirements_txt_file_locks_if_no_lock_file
    FAILED tests/command/test_command_export.py::test_export_exports_requirements_txt_uses_lock_file
    FAILED tests/command/test_command_export.py::test_export_prints_to_stdout_by_default
    FAILED tests/command/test_command_export.py::test_export_uses_requirements_txt_format_by_default
    FAILED tests/command/test_command_export.py::test_export_groups[-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--with dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.
    7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--with opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.
    7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--with dev,opt-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version ==
    "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--without dev-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--without opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--only main-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--only dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_groups[--only main,dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version =
    = "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_includes_extras_by_flag[feature_bar-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or
    python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_includes_extras_by_flag[feature_bar feature_qux-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version <
    "4.0" or python_version == "2.7"\nqux==1.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n]
    FAILED tests/command/test_command_export.py::test_export_with_all_extras - as...
    FAILED tests/command/test_command_export.py::test_export_with_all_groups - as...
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_poetry[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_poetry[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_pyinstaller[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_pyinstaller[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-False-lines0]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-True-lines1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-False-lines0]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-True-lines1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_dev_packages_by_default[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_dev_packages_by_default[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_optional_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_optional_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_optional_packages[1.1-extras0-lines0]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_optional_packages[2.1-extras0-lines0]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_git_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_git_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_circular_root_dependency[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_circular_root_dependency[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages_editable[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages_editable[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_directory_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_directory_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_file_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_file_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_url_false[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_url_false[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[1.1-True-expected0]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[1.1-False-expected1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[2.1-True-expected0]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[2.1-False-expected1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_two_primary_sources[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_two_primary_sources[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_to_standard_output[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_to_standard_output[2.1]
    FAILED tests/test_exporter.py::test_exporter_doesnt_confuse_repeated_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[1.1-constraints.txt-expected0]
    FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[1.1-requirements.txt-expected1]
    FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[2.1-constraints.txt-expected0]
    FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[2.1-requirements.txt-expected1]
    FAILED tests/test_exporter.py::test_exporter_prints_warning_for_constraints_txt_with_editable_packages[1.1]
    FAILED tests/test_exporter.py::test_exporter_prints_warning_for_constraints_txt_with_editable_packages[2.1]
    FAILED tests/test_exporter.py::test_exporter_exports_extra_index_url_and_trusted_host[1.1]
    FAILED tests/test_exporter.py::test_exporter_exports_extra_index_url_and_trusted_host[2.1]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities0-expected0]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities1-expected1]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities2-expected2]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities3-expected3]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities4-expected4]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities5-expected5]
    FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities6-expected6]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities0-expected0]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities1-expected1]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities2-expected2]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities3-expected3]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities4-expected4]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities5-expected5]
    FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities6-expected6]
    FAILED tests/test_exporter.py::test_dependency_walk_error[2.1] - assert 'bar=...
    ======================== 103 failed, 38 passed in 9.75s ========================
    E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_poetry-plugin-export/build; python3.13 -m pytest tests
    dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:5: binary] Error 25
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

    The above is just how the build ends and not necessarily the most relevant part.
    If required, the full build log is available here:

    https://people.debian.org/~sanvila/build-logs/202503/

    About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages.

    If you could not reproduce the bug please contact me privately, as I
    am willing to provide ssh access to a virtual machine where the bug is
    fully reproducible.

    If this is really a bug in one of the build-depends, please use
    reassign and add an affects on src:poetry-plugin-export, so that this is still visible in the BTS web page for this package.

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Sun Mar 16 18:40:01 2025
    This is a multi-part message in MIME format...

    Your message dated Sun, 16 Mar 2025 17:35:23 +0000
    with message-id <E1ttrtT-00C5pA-QX@fasolo.debian.org>
    and subject line Bug#1100252: fixed in poetry-plugin-export 1.9.0-2
    has caused the Debian Bug report #1100252,
    regarding poetry-plugin-export: FTBFS: E assert 'bar==1.1.0 ;...ion < "4.0"\n' == 'bar==1.1.0 ;...on == "2.7"\n'
    to be marked as done.

    This means that you claim that the problem has been dealt with.
    If this is not the case it is now your responsibility to reopen the
    Bug report if necessary, and/or fix the problem forthwith.

    (NB: If you are a system administrator and have no idea what this
    message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org
    immediately.)


    --
    1100252: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1100252
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    Received: (at submit) by bugs.debian.org; 12 Mar 2025 16:32:13 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-109.9 required=4.0 tests=BAYES_00,
    BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
    DKIM_VALID_AU,DKIM_VALID_EF,FROMDEVELOPER,HAS_PACKAGE,
    META_ATTENDEES_DBSPAM1,PP_MIME_FAKE_ASCII_TEXT,RCVD_IN_DNSWL_MED,
    SPF_HELO_PASS,SPF_NONE,USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST,
    WEIRD_PORT,X_DEBBUGS_CC autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 158; hammy, 150; neutral, 308; spammy,
    0. spammytokens: hammytokens:0.000-+--python3, 0.000-+--trixie,
    0.000-+--pkgbuilddir, 0.000-+--PKGBUILDDIR, 0.000-+--sk:dh_auto Return-path: <sanvila@debian.org>
    Received