Package: src:python-respx Version: 0.21.1-2 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 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:311: python3.13 setup.py clean running clean removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it dh_autoreconf_clean -O--buildsystem=pybuild debian/rules override_dh_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' dh_clean rm -f coverage.xml rm -f .coverage [... snipped ...] next(self.gen) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa18f9d3920> request = <Request(b'GET', 'https://foo.bar/')> @contextmanager def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, None, None]: resolved = ResolvedRoute() try: yield resolved if resolved.route is None: # Assert we always get a route match, if check is enabled if self._assert_all_mocked: > raise AllMockedAssertionError(f"RESPX: {request!r} not > mocked!") E respx.models.AllMockedAssertionError: RESPX: <Request(b'GET', 'https://foo.bar/')> not mocked! respx/router.py:250: AllMockedAssertionError _____________________________ test_route_rollback ______________________________ async def test_route_rollback(): respx_mock = respx.mock() def example(request, route): route.mock(return_value=httpx.Response(404)) return httpx.Response(202) route = respx_mock.delete("https://example.org/foobar/") route.side_effect = example with respx_mock: async with httpx.AsyncClient(base_url="https://example.org/") as client: > response = await client.delete("/foobar/") tests/test_mock.py:725: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/httpx/_client.py:1966: in delete return await self.request( /usr/lib/python3/dist-packages/httpx/_client.py:1540: in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3/dist-packages/httpx/_client.py:1629: in send response = await self._send_handling_auth( /usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth response = await self._send_handling_redirects( /usr/lib/python3/dist-packages/httpx/_client.py:1694: in _send_handling_redirects response = await self._send_single_request(request) /usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request response = await transport.handle_async_request(request) /usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in handle_async_request resp = await self._pool.handle_async_request(req) respx/mocks.py:190: in amock response = await cls._send_async_request( respx/mocks.py:224: in _send_async_request httpx_response = await cls.async_handler(httpx_request) respx/mocks.py:136: in async_handler raise assertion_error respx/mocks.py:129: in async_handler httpx_response = await router.async_handler(httpx_request) respx/router.py:318: in async_handler resolved = await self.aresolve(request) respx/router.py:291: in aresolve with self.resolver(request) as resolved: /usr/lib/python3.13/contextlib.py:148: in __exit__ next(self.gen) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa18f1107a0> request = <Request(b'DELETE', 'https://example.org/foobar/')> @contextmanager def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, None, None]: resolved = ResolvedRoute() try: yield resolved if resolved.route is None: # Assert we always get a route match, if check is enabled if self._assert_all_mocked: > raise AllMockedAssertionError(f"RESPX: {request!r} not > mocked!") E respx.models.AllMockedAssertionError: RESPX: <Request(b'DELETE', 'https://example.org/foobar/')> not mocked! respx/router.py:250: AllMockedAssertionError ___________________________ test_respx_mock_fixture ____________________________ testdir = <Testdir local('/tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0')> def test_respx_mock_fixture(testdir): testdir.makepyfile( """ import httpx import pytest from respx.plugin import respx_mock @pytest.fixture def some_fixture(): yield "foobar" def test_plain_fixture(respx_mock): route = respx_mock.get("https://foo.bar/") % 204 response = httpx.get("https://foo.bar/") assert response.status_code == 204 @pytest.mark.respx(base_url="https://foo.bar", assert_all_mocked=False) def test_marked_fixture(respx_mock): route = respx_mock.get("/") % 204 response = httpx.get("https://foo.bar/") assert response.status_code == 204 response = httpx.get("https://example.org/") assert response.status_code == 200 def test_with_extra_fixture(respx_mock, some_fixture): import respx assert isinstance(respx_mock, respx.Router) assert some_fixture == "foobar" @pytest.mark.respx(assert_all_mocked=False) def test_marked_with_extra_fixture(respx_mock, some_fixture): import respx assert isinstance(respx_mock, respx.Router) assert some_fixture == "foobar" """ ) result = testdir.runpytest("-p", "respx") > result.assert_outcomes(passed=4) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 3 identical items, use -vv to show E Differing items: E {'passed': 2} != {'passed': 4} E {'failed': 2} != {'failed': 0} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/tests/test_plugin.py:41: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0 rootdir: /tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0 plugins: asyncio-0.25.1, twisted-1.14.3, trio-0.8.0, cov-5.0.0, anyio-4.8.0, typeguard-4.4.2, tornasync-0.6.0.post2 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None collected 4 items test_respx_mock_fixture.py FFE.. [100%] ==================================== ERRORS ==================================== ___________________ ERROR at teardown of test_marked_fixture ___________________ request = <SubRequest 'respx_mock' for <Function test_marked_fixture>> @pytest.fixture() def respx_mock(request): respx_marker = request.node.get_closest_marker("respx") mock_router: MockRouter = ( respx.mock if respx_marker is None else cast(MockRouter, respx.mock(**respx_marker.kwargs)) ) > with mock_router: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/plugin.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:437: in __exit__ self.stop(quiet=bool(exc_type is not None)) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:479: in stop self.assert_all_called() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa18f112de0> def assert_all_called(self) -> None: not_called_routes = [route for route in self.routes if not route.called] > assert not_called_routes == [], "RESPX: some routes were not called!" E AssertionError: RESPX: some routes were not called! /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:102: AssertionError =================================== FAILURES =================================== ______________________________ test_plain_fixture ______________________________ respx_mock = <respx.router.MockRouter object at 0x7fa19115b4d0> def test_plain_fixture(respx_mock): route = respx_mock.get("https://foo.bar/") % 204 > response = httpx.get("https://foo.bar/") test_respx_mock_fixture.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/httpx/_api.py:195: in get return request( /usr/lib/python3/dist-packages/httpx/_api.py:109: in request return client.request( /usr/lib/python3/dist-packages/httpx/_client.py:825: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3/dist-packages/httpx/_client.py:914: in send response = self._send_handling_auth( /usr/lib/python3/dist-packages/httpx/_client.py:942: in _send_handling_auth response = self._send_handling_redirects( /usr/lib/python3/dist-packages/httpx/_client.py:979: in _send_handling_redirects response = self._send_single_request(request) /usr/lib/python3/dist-packages/httpx/_client.py:1014: in _send_single_request response = transport.handle_request(request) /usr/lib/python3/dist-packages/httpx/_transports/default.py:250: in handle_request resp = self._pool.handle_request(req) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:181: in mock response = cls._send_sync_request( /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:212: in _send_sync_request httpx_response = cls.handler(httpx_request) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:120: in handler raise assertion_error /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/mocks.py:113: in handler httpx_response = router.handler(httpx_request) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:313: in handler resolved = self.resolve(request) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:277: in resolve with self.resolver(request) as resolved: /usr/lib/python3.13/contextlib.py:148: in __exit__ next(self.gen) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa19115b4d0> request = <Request(b'GET', 'https://foo.bar/')> @contextmanager def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, None, None]: resolved = ResolvedRoute() try: yield resolved if resolved.route is None: # Assert we always get a route match, if check is enabled if self._assert_all_mocked: > raise AllMockedAssertionError(f"RESPX: {request!r} not > mocked!") E respx.models.AllMockedAssertionError: RESPX: <Request(b'GET', 'https://foo.bar/')> not mocked! /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/router.py:250: AllMockedAssertionError _____________________________ test_marked_fixture ______________________________ respx_mock = <respx.router.MockRouter object at 0x7fa18f112de0> @pytest.mark.respx(base_url="https://foo.bar", assert_all_mocked=False) def test_marked_fixture(respx_mock): route = respx_mock.get("/") % 204 response = httpx.get("https://foo.bar/") > assert response.status_code == 204 E assert 200 == 204 E + where 200 = <Response [200 OK]>.status_code test_respx_mock_fixture.py:19: AssertionError =============================== warnings summary =============================== ../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:810 /usr/lib/python3/dist-packages/_pytest/config/__init__.py:810: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: respx self.import_plugin(arg, consider_entry_points=True) test_respx_mock_fixture.py:15 /tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0/test_respx_mock_fixture.py:15: PytestUnknownMarkWarning: Unknown pytest.mark.respx - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.respx(base_url="https://foo.bar", assert_all_mocked=False) test_respx_mock_fixture.py:30 /tmp/pytest-of-buildd/pytest-0/test_respx_mock_fixture0/test_respx_mock_fixture.py:30: PytestUnknownMarkWarning: Unknown pytest.mark.respx - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.respx(assert_all_mocked=False) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test_respx_mock_fixture.py::test_plain_fixture - respx.models.AllMocke... FAILED test_respx_mock_fixture.py::test_marked_fixture - assert 200 == 204 ERROR test_respx_mock_fixture.py::test_marked_fixture - AssertionError: RESPX... =============== 2 failed, 2 passed, 3 warnings, 1 error in 0.23s =============== _________________________________ test_asyncio _________________________________ def test_asyncio(): import asyncio loop = asyncio.new_event_loop() try: > loop.run_until_complete(backend_test()) tests/test_stats.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.13/asyncio/base_events.py:725: in run_until_complete return future.result() respx/router.py:407: in _async_decorator return await func(*args, **kwargs) tests/test_stats.py:43: in backend_test get_response = await client.get(url) /usr/lib/python3/dist-packages/httpx/_client.py:1768: in get return await self.request( /usr/lib/python3/dist-packages/httpx/_client.py:1540: in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3/dist-packages/httpx/_client.py:1629: in send response = await self._send_handling_auth( /usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth response = await self._send_handling_redirects( /usr/lib/python3/dist-packages/httpx/_client.py:1694: in _send_handling_redirects response = await self._send_single_request(request) /usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request response = await transport.handle_async_request(request) /usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in handle_async_request resp = await self._pool.handle_async_request(req) respx/mocks.py:190: in amock response = await cls._send_async_request( respx/mocks.py:224: in _send_async_request httpx_response = await cls.async_handler(httpx_request) respx/mocks.py:136: in async_handler raise assertion_error respx/mocks.py:129: in async_handler httpx_response = await router.async_handler(httpx_request) respx/router.py:318: in async_handler resolved = await self.aresolve(request) respx/router.py:291: in aresolve with self.resolver(request) as resolved: /usr/lib/python3.13/contextlib.py:148: in __exit__ next(self.gen) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa19115b4d0> request = <Request(b'GET', 'https://foo.bar/1/')> @contextmanager def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, None, None]: resolved = ResolvedRoute() try: yield resolved if resolved.route is None: # Assert we always get a route match, if check is enabled if self._assert_all_mocked: > raise AllMockedAssertionError(f"RESPX: {request!r} not > mocked!") E respx.models.AllMockedAssertionError: RESPX: <Request(b'GET', 'https://foo.bar/1/')> not mocked! respx/router.py:250: AllMockedAssertionError __________________________________ test_trio ___________________________________ def test_trio(): # pragma: nocover import trio > trio.run(backend_test) tests/test_stats.py:105: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ respx/router.py:407: in _async_decorator return await func(*args, **kwargs) tests/test_stats.py:43: in backend_test get_response = await client.get(url) /usr/lib/python3/dist-packages/httpx/_client.py:1768: in get return await self.request( /usr/lib/python3/dist-packages/httpx/_client.py:1540: in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3/dist-packages/httpx/_client.py:1629: in send response = await self._send_handling_auth( /usr/lib/python3/dist-packages/httpx/_client.py:1657: in _send_handling_auth response = await self._send_handling_redirects( /usr/lib/python3/dist-packages/httpx/_client.py:1694: in _send_handling_redirects response = await self._send_single_request(request) /usr/lib/python3/dist-packages/httpx/_client.py:1730: in _send_single_request response = await transport.handle_async_request(request) /usr/lib/python3/dist-packages/httpx/_transports/default.py:394: in handle_async_request resp = await self._pool.handle_async_request(req) respx/mocks.py:190: in amock response = await cls._send_async_request( respx/mocks.py:224: in _send_async_request httpx_response = await cls.async_handler(httpx_request) respx/mocks.py:136: in async_handler raise assertion_error respx/mocks.py:129: in async_handler httpx_response = await router.async_handler(httpx_request) respx/router.py:318: in async_handler resolved = await self.aresolve(request) respx/router.py:291: in aresolve with self.resolver(request) as resolved: /usr/lib/python3.13/contextlib.py:148: in __exit__ next(self.gen) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <respx.router.MockRouter object at 0x7fa19115b4d0> request = <Request(b'GET', 'https://foo.bar/1/')> @contextmanager def resolver(self, request: httpx.Request) -> Generator[ResolvedRoute, None, None]: resolved = ResolvedRoute() try: yield resolved if resolved.route is None: # Assert we always get a route match, if check is enabled if self._assert_all_mocked: > raise AllMockedAssertionError(f"RESPX: {request!r} not > mocked!") E respx.models.AllMockedAssertionError: RESPX: <Request(b'GET', 'https://foo.bar/1/')> not mocked! respx/router.py:250: AllMockedAssertionError =============================== warnings summary =============================== ../../../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256 /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256: PytestDeprecationWarning: mocked_foo is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. warnings.warn( ../../../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256 /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:256: PytestDeprecationWarning: mocked_ham is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. warnings.warn( .pybuild/cpython3_3.13_respx/build/tests/test_api.py::test_http_methods /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:866: DeprecationWarning: The event_loop fixture provided by pytest-asyncio has been redefined in /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/build/respx/fixtures.py:8 Replacing the event_loop fixture with a custom implementation is deprecated and will lead to errors in the future. If you want to request an asyncio event loop with a scope other than function scope, use the "loop_scope" argument to the asyncio mark when marking the tests. If you want to return different types of event loops, use the event_loop_policy fixture. warnings.warn( .pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture /usr/lib/python3/dist-packages/pytest_tornasync/plugin.py:33: PytestDeprecationWarning: The hookimpl pytest_pycollect_makeitem uses old-style configuration options (marks or attributes). Please use the pytest.hookimpl(tryfirst=True) decorator instead to configure the hooks. See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers @pytest.mark.tryfirst .pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture /usr/lib/python3/dist-packages/pytest_tornasync/plugin.py:39: PytestDeprecationWarning: The hookimpl pytest_pyfunc_call uses old-style configuration options (marks or attributes). Please use the pytest.hookimpl(tryfirst=True) decorator instead to configure the hooks. See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers @pytest.mark.tryfirst .pybuild/cpython3_3.13_respx/build/tests/test_plugin.py::test_respx_mock_fixture /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ---------- coverage: platform linux, python 3.13.2-final-0 ----------- Name Stmts Miss Cover Missing -------------------------------------------------------- respx/__init__.py 7 0 100% respx/__version__.py 1 0 100% respx/api.py 42 2 95% 26, 31 respx/fixtures.py 8 0 100% respx/handlers.py 18 0 100% respx/mocks.py 197 3 98% 55, 214, 226 respx/models.py 284 10 96% 55, 60, 102, 183, 191, 342-343, 351, 473-474 respx/patterns.py 455 0 100% respx/plugin.py 12 1 92% 11 respx/router.py 220 2 99% 61, 140 respx/transports.py 45 0 100% respx/types.py 18 0 100% respx/utils.py 66 0 100% tests/__init__.py 0 0 100% tests/conftest.py 25 0 100% tests/test_api.py 342 159 54% 32-72, 93-94, 113-124, 133-134, 160-161, 177-178, 198-206, 238-246, 258-263, 271-272, 281-282, 293-307, 315-316, 322-332, 337-344, 351-380, 424, 432-436, 464-465, 504, 523, 532-545, 556-564, 573-589, 622 tests/test_mock.py 523 151 71% 32-37, 43-46, 54-64, 73-75, 79, 88-90, 94, 161-164, 169, 177-189, 197-211, 224-237, 250-261, 294, 307-327, 350-366, 383-399, 425-429, 480-489, 498-499, 704-710, 717-718, 726-734 tests/test_patterns.py 170 0 100% tests/test_plugin.py 4 0 100% tests/test_remote.py 4 0 100% tests/test_router.py 348 0 100% tests/test_stats.py 77 39 49% 44-89 tests/test_transports.py 49 0 100% tests/test_utils.py 7 0 100% -------------------------------------------------------- TOTAL 2922 367 87% Coverage XML written to file coverage.xml FAIL Required test coverage of 95% not reached. Total coverage: 87.44% =========================== short test summary info ============================ SKIPPED [2] tests/test_remote.py:12: Remote pass-through disabled = 105 failed, 211 passed, 2 skipped, 3 deselected, 6 warnings, 2 errors in 18.53s = E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_respx/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:7: 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:python-respx, so that this is still visible in the BTS web page for this package. Thanks.