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.

Reply via email to