Package: src:python-structlog Version: 25.3.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 --buildsystem=pybuild debian/rules execute_before_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' make -C docs clean BUILDDIR=/<<PKGBUILDDIR>>/.pybuild/docs make[2]: Entering directory '/<<PKGBUILDDIR>>/docs' rm -rf /<<PKGBUILDDIR>>/.pybuild/docs/* make[2]: Leaving directory '/<<PKGBUILDDIR>>/docs' make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --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:129: Building wheel for python3.13 with "build" module I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog * Building wheel... Successfully built structlog-25.3.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module debian/rules execute_after_dh_auto_build make[1]: Entering directory '/<<PKGBUILDDIR>>' PYTHONPATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/build \ http_proxy=http://127.0.0.1:9 \ https_proxy=https://127.0.0.1:9 \ make -C docs html BUILDDIR=/<<PKGBUILDDIR>>/.pybuild/docs make[2]: Entering directory '/<<PKGBUILDDIR>>/docs' sphinx-build -n -b html -d /<<PKGBUILDDIR>>/.pybuild/docs/doctrees . /<<PKGBUILDDIR>>/.pybuild/docs/html Running Sphinx v8.1.3 loading translations [en]... done making output directory... done Converting `source_suffix = ['.rst', '.md']` to `source_suffix = {'.rst': 'restructuredtext', '.md': 'restructuredtext'}`. myst v4.0.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'deflist', 'smartquotes', 'colon_fence'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) loading intersphinx inventory 'python' from /usr/share/doc/python3-doc/html/objects.inv ... loading intersphinx inventory 'rich' from https://rich.readthedocs.io/en/stable/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://rich.readthedocs.io/en/stable/objects.inv' not fetchable due to <class 'requests.exceptions.ProxyError'>: HTTPSConnectionPool(host='rich.readthedocs.io', port=443): Max retries exceeded with url: /en/stable/objects.inv (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2e221296a0>: Failed to establish a new connection: [Errno 111] Connection refused'))) building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 21 source files that are out of date updating environment: [new config] 21 added, 0 changed, 0 removed reading sources... [ 5%] api reading sources... [ 10%] bound-loggers reading sources... [ 14%] configuration reading sources... [ 19%] console-output reading sources... [ 24%] contextvars reading sources... [ 29%] exceptions reading sources... [ 33%] frameworks reading sources... [ 38%] getting-started reading sources... [ 43%] glossary reading sources... [ 48%] index reading sources... [ 52%] license reading sources... [ 57%] logging-best-practices reading sources... [ 62%] performance reading sources... [ 67%] processors reading sources... [ 71%] recipes reading sources... [ 76%] standard-library reading sources... [ 81%] testing reading sources... [ 86%] thread-local reading sources... [ 90%] twisted reading sources... [ 95%] typing reading sources... [100%] why /<<PKGBUILDDIR>>/README.md:335: WARNING: image file not readable: docs/_static/console_renderer.png [image.not_readable] /<<PKGBUILDDIR>>/docs/standard-library.md.rst:168: WARNING: Unknown directive type: 'mermaid' [myst.directive_unknown] /<<PKGBUILDDIR>>/docs/standard-library.md.rst:263: WARNING: Unknown directive type: 'mermaid' [myst.directive_unknown] /<<PKGBUILDDIR>>/docs/standard-library.md.rst:345: WARNING: Unknown directive type: 'mermaid' [myst.directive_unknown] looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /<<PKGBUILDDIR>>/.pybuild/docs/html/_static/language_data.js Writing evaluated template result to /<<PKGBUILDDIR>>/.pybuild/docs/html/_static/basic.css Writing evaluated template result to /<<PKGBUILDDIR>>/.pybuild/docs/html/_static/documentation_options.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 5%] api writing output... [ 10%] bound-loggers writing output... [ 14%] configuration writing output... [ 19%] console-output writing output... [ 24%] contextvars writing output... [ 29%] exceptions writing output... [ 33%] frameworks writing output... [ 38%] getting-started writing output... [ 43%] glossary writing output... [ 48%] index writing output... [ 52%] license writing output... [ 57%] logging-best-practices writing output... [ 62%] performance writing output... [ 67%] processors writing output... [ 71%] recipes writing output... [ 76%] standard-library writing output... [ 81%] testing writing output... [ 86%] thread-local writing output... [ 90%] twisted writing output... [ 95%] typing writing output... [100%] why /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/build/structlog/dev.py:docstring of structlog.dev.RichTracebackFormatter:5: WARNING: py:class reference target not found: rich.traceback.Traceback [ref.class] /<<PKGBUILDDIR>>/README.md:335: WARNING: 'myst' cross-reference target not found: 'docs/_static/console_renderer.png' [myst.xref_missing] generating indices... genindex py-modindex done highlighting module code... [ 6%] structlog._base highlighting module code... [ 12%] structlog._config highlighting module code... [ 19%] structlog._generic highlighting module code... [ 25%] structlog._log_levels highlighting module code... [ 31%] structlog._native highlighting module code... [ 38%] structlog._output highlighting module code... [ 44%] structlog.contextvars highlighting module code... [ 50%] structlog.dev highlighting module code... [ 56%] structlog.exceptions highlighting module code... [ 62%] structlog.processors highlighting module code... [ 69%] structlog.stdlib highlighting module code... [ 75%] structlog.testing highlighting module code... [ 81%] structlog.threadlocal highlighting module code... [ 88%] structlog.tracebacks highlighting module code... [ 94%] structlog.twisted highlighting module code... [100%] structlog.typing writing additional pages... search done copying images... [ 50%] _static/BoundLogger.svg copying images... [100%] _static/console_renderer.png dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 7 warnings. The HTML pages are in ../.pybuild/docs/html. Build finished. The HTML pages are in /<<PKGBUILDDIR>>/.pybuild/docs/html. make[2]: Leaving directory '/<<PKGBUILDDIR>>/docs' make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/build; python3.13 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/build configfile: pyproject.toml plugins: asyncio-0.25.1, typeguard-4.4.2 asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function collected 880 items tests/processors/test_processors.py .................................... [ 4%] ........................................................................ [ 12%] .............................................................. [ 19%] tests/processors/test_renderers.py ..................................... [ 23%] ......s...s...s...s...s...s...s...s...s...s...s...s................ [ 31%] tests/test_base.py .................... [ 33%] tests/test_config.py .......................................... [ 38%] tests/test_contextvars.py .................. [ 40%] tests/test_dev.py ..s................................................... [ 46%] ........sssss. [ 47%] tests/test_frames.py ............ [ 49%] tests/test_generic.py ..... [ 49%] tests/test_native.py ....................................... [ 54%] tests/test_output.py ................................................... [ 60%] ...................................................................... [ 68%] tests/test_packaging.py ..... [ 68%] tests/test_stdlib.py ................................................... [ 74%] ..............................................................F......... [ 82%] .............. [ 84%] tests/test_testing.py ................... [ 86%] tests/test_threadlocal.py .............s................. [ 89%] tests/test_tracebacks.py ...........sssssssss........................... [ 95%] .......... [ 96%] tests/test_twisted.py ............................ [ 99%] tests/test_utils.py .... [100%] =================================== FAILURES =================================== ________ TestProcessorFormatter.test_foreign_pre_chain_filter_by_level _________ self = <tests.test_stdlib.TestProcessorFormatter object at 0x7f937ccedbd0> capsys = <_pytest.capture.CaptureFixture object at 0x7f937ce8b2d0> def test_foreign_pre_chain_filter_by_level(self, capsys): """ foreign_pre_chain works with filter_by_level processor. """ logger = logging.getLogger() configure_logging([filter_by_level], logger=logger) configure( processors=[ProcessorFormatter.wrap_for_formatter], logger_factory=LoggerFactory(), wrapper_class=BoundLogger, ) > logger.warning("foo") tests/test_stdlib.py:1350: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.13/logging/__init__.py:1534: in warning self._log(WARNING, msg, args, **kwargs) /usr/lib/python3.13/logging/__init__.py:1667: in _log self.handle(record) /usr/lib/python3.13/logging/__init__.py:1686: in handle self.callHandlers(record) /usr/lib/python3.13/logging/__init__.py:1744: in callHandlers hdlr.handle(record) /usr/lib/python3.13/logging/__init__.py:1027: in handle self.emit(record) /usr/lib/python3.13/logging/__init__.py:1151: in emit msg = self.format(record) /usr/lib/python3.13/logging/__init__.py:999: in format return fmt.format(record) structlog/stdlib.py:1143: in format ed = cast(EventDict, proc(logger, meth_name, ed)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ logger = <RootLogger root (DEBUG)>, method_name = 'warning' event_dict = {'_from_structlog': False, '_record': <LogRecord: root, 30, /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/build/tests/test_stdlib.py, 1350, "foo">, 'event': 'foo'} def filter_by_level( logger: logging.Logger, method_name: str, event_dict: EventDict ) -> EventDict: """ Check whether logging is configured to accept messages from this log level. Should be the first processor if stdlib's filtering by level is used so possibly expensive processors like exception formatters are avoided in the first place. >>> import logging >>> from structlog.stdlib import filter_by_level >>> logging.basicConfig(level=logging.WARN) >>> logger = logging.getLogger() >>> filter_by_level(logger, 'warn', {}) {} >>> filter_by_level(logger, 'debug', {}) Traceback (most recent call last): ... DropEvent """ if logger.isEnabledFor(NAME_TO_LEVEL[method_name]): return event_dict > raise DropEvent E structlog.exceptions.DropEvent structlog/stdlib.py:793: DropEvent =========================== short test summary info ============================ SKIPPED [12] tests/processors/test_renderers.py:489: Skipped SKIPPED [1] tests/test_dev.py:49: Must be running on Windows. SKIPPED [1] tests/test_dev.py:654: Needs Rich. SKIPPED [1] tests/test_dev.py:660: Needs Rich. SKIPPED [1] tests/test_dev.py:672: Needs Rich. SKIPPED [1] tests/test_dev.py:691: Needs better-exceptions. SKIPPED [1] tests/test_dev.py:701: Needs better-exceptions. SKIPPED [1] tests/test_threadlocal.py:260: Needs greenlet. SKIPPED [9] tests/test_tracebacks.py:112: rich not installed FAILED tests/test_stdlib.py::TestProcessorFormatter::test_foreign_pre_chain_filter_by_level ================== 1 failed, 851 passed, 28 skipped in 1.25s =================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_structlog/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:11: 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/202505/ 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-structlog, so that this is still visible in the BTS web page for this package. Thanks.