Discussion:
Bug#1084383: traitlets: FTBFS: AssertionError: assert {''} > {'DEBUG', 'INFO'}
Add Reply
Santiago Vila
2024-10-07 08:50:11 UTC
Reply
Permalink
Package: src:traitlets
Version: 5.14.3+really5.14.3-1
Severity: serious
Tags: ftbfs

Dear maintainer:

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

--------------------------------------------------------------------------------
[...]
debian/rules binary
dh binary --with sphinxdoc --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.12 with "build" module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets
* Building wheel...
Successfully built traitlets-5.14.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module
debian/rules execute_after_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
PYTHONPATH=$(pwd) make -C docs html
make[2]: Entering directory '/<<PKGBUILDDIR>>/docs'
sphinx-build -b html -d build/doctrees source build/html
Running Sphinx v7.4.7
loading translations [en]... done
making output directory... done
Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`.
myst v4.0.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions=set(), 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...
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 10 source files that are out of date
updating environment: [new config] 10 added, 0 changed, 0 removed
reading sources... [ 10%] api
reading sources... [ 20%] changelog
reading sources... [ 30%] config
reading sources... [ 40%] config-api
reading sources... [ 50%] defining_traits
reading sources... [ 60%] index
reading sources... [ 70%] migration
reading sources... [ 80%] trait_types
reading sources... [ 90%] using_traitlets
reading sources... [100%] utils

/<<PKGBUILDDIR>>/docs/source/utils.rst:4: WARNING: duplicate object description of traitlets, other instance in trait_types, use :no-index: for one of them
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets...
copying static files... done
copying extra files... done
copying assets: done
writing output... [ 10%] api
writing output... [ 20%] changelog
writing output... [ 30%] config
writing output... [ 40%] config-api
writing output... [ 50%] defining_traits
writing output... [ 60%] index
writing output... [ 70%] migration
writing output... [ 80%] trait_types
writing output... [ 90%] using_traitlets
writing output... [100%] utils

generating indices... genindex py-modindex done
writing additional pages... search done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded, 1 warning.

The HTML pages are in build/html.

Build finished. The HTML pages are in build/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.12_traitlets/build; python3.12 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build
configfile: pyproject.toml
plugins: mock-3.14.0, typeguard-4.3.0, mypy-testing-0.1.3
collected 588 items

tests/_warnings.py .s [ 0%]
tests/config/test_application.py ....................................... [ 6%]
...... [ 7%]
tests/config/test_argcomplete.py .F.... [ 9%]
tests/config/test_configurable.py ................................... [ 14%]
tests/config/test_loader.py ............................................ [ 22%]
.................. [ 25%]
tests/test_traitlets.py ................................................ [ 33%]
........................................................................ [ 45%]
........................................................................ [ 58%]
........................................................................ [ 70%]
........................................................................ [ 82%]
..................................................... [ 91%]
tests/test_traitlets_docstring.py . [ 91%]
tests/test_traitlets_enum.py ........................ [ 95%]
tests/test_typing.py ............... [ 98%]
tests/utils/test_bunch.py .. [ 98%]
tests/utils/test_decorators.py ..... [ 99%]
tests/utils/test_importstring.py .. [100%]

=================================== FAILURES ===================================
_______________ TestArgcomplete.test_complete_custom_completers ________________

self = <tests.config.test_argcomplete.TestArgcomplete object at 0x7f59cf68da30>
argcomplete_on = None

def test_complete_custom_completers(self, argcomplete_on):
app = ArgcompleteApp()
# test pre-defined completers for Bool/Enum
assert set(self.run_completer(app, "app --Application.log_level=")) > {"DEBUG", "INFO"}
E AssertionError: assert {''} > {'DEBUG', 'INFO'}
E 
E Extra items in the right set:
E 'INFO'
E 'DEBUG'

app = <tests.config.test_argcomplete.ArgcompleteApp object at 0x7f59cf2d6ed0>
argcomplete_on = None
self = <tests.config.test_argcomplete.TestArgcomplete object at 0x7f59cf68da30>

tests/config/test_argcomplete.py:157: AssertionError
=============================== warnings summary ===============================
tests/_warnings.py::tests._warnings.all_warnings
<doctest tests._warnings.all_warnings[1]>:2: RuntimeWarning: bar

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================= slowest 10 durations =============================
4.26s call tests/test_typing.py::[mypy]mypy_decorator_typing
0.14s call tests/config/test_application.py::test_help_all_output
0.13s call tests/config/test_application.py::test_help_output
0.13s call tests/config/test_application.py::test_show_config_json_cli
0.13s call tests/config/test_application.py::test_show_config_cli
0.03s call tests/config/test_argcomplete.py::TestArgcomplete::test_complete_custom_completers
0.02s call tests/config/test_configurable.py::TestConfigContainers::test_config_default_deprecated
0.01s call tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands
0.01s call tests/config/test_configurable.py::TestConfigurable::test_override2

(1 durations < 0.005s hidden. Use -vv to show these durations.)
=========================== short test summary info ============================
SKIPPED [1] ../../../../../../usr/lib/python3/dist-packages/_pytest/doctest.py:458: all tests skipped by +SKIP option
FAILED tests/config/test_argcomplete.py::TestArgcomplete::test_complete_custom_completers - AssertionError: assert {''} > {'DEBUG', 'INFO'}
============= 1 failed, 586 passed, 1 skipped, 1 warning in 5.58s ==============
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build; python3.12 -m pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.12 returned exit code 13
make: *** [debian/rules:8: 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/202410/

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 affects, so that this is still visible in the BTS web
page for this package.

Thanks.
Julien Puydt
2024-11-05 13:40:01 UTC
Reply
Permalink
Hi,

I just tried to "sbuild -d unstable traitlets" and it compiled fine...
so I'm wondering if the failure you reported is reproducible on your
side.

Cheers,

J.Puydt
Santiago Vila
2024-11-05 14:10:01 UTC
Reply
Permalink
Post by Julien Puydt
I just tried to "sbuild -d unstable traitlets" and it compiled fine...
so I'm wondering if the failure you reported is reproducible on your
side.
Thanks for checking.

It was 100% reproducible on my side, but at the time I reported it,
as I always try several times, on different machines, before reporting.

Because the package builds ok for me again, and there was no new upload,
this was very likely a bug in one of the build-dependencies, so I'm
closing this myself.

If we knew which build-dependency was at fault, we could maybe reassign
the bug and use affects, for documentation purposes, but at this point
it probably does not worth the effort.

[ However, if you are really curious, you could still try to
reproduce it with snapshot.debian.org, using the date in the
build log ].

Thanks.
Santiago Vila
2024-11-05 14:30:02 UTC
Reply
Permalink
Hi.

For the record: I was not the only one to find this problem:

https://bugs.gentoo.org/940636

So, in addition to a bug in a build-depends, this could also be
a bug which happens randomly, in which case it seems I
was so unlucky that it failed for me several times in a row.

Thanks.

Debian Bug Tracking System
2024-11-05 14:10:01 UTC
Reply
Permalink
Your message dated Tue, 5 Nov 2024 15:01:05 +0100
with message-id <ca1fdc64-ca42-4fbe-b090-***@debian.org>
and subject line traitlets: FTBFS: AssertionError: assert {''} > {'DEBUG', 'INFO'}
has caused the Debian Bug report #1084383,
regarding traitlets: FTBFS: AssertionError: assert {''} > {'DEBUG', 'INFO'}
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 ***@bugs.debian.org
immediately.)
--
1084383: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084383
Debian Bug Tracking System
Contact ***@bugs.debian.org with problems
Loading...