Bug#1123355: spyder-kernels: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13
Santiago Vila
sanvila at debian.org
Tue Dec 16 19:50:44 GMT 2025
Package: src:spyder-kernels
Version: 3.0.3-1
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:
https://people.debian.org/~sanvila/build-logs/202512/
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 cannot 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:spyder-kernels, so that this is still
visible in the BTS web page for this package.
Thanks.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:317: python3.14 setup.py clean
/usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: MIT License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
[... snipped ...]
_____________________________ test_debug_namespace _____________________________
tmpdir = local('/tmp/pytest-of-sbuild/pytest-0/test_debug_namespace2')
@flaky(max_runs=3)
def test_debug_namespace(tmpdir):
"""
Test that the kernel uses the proper namespace while debugging.
"""
# Command to start the kernel
cmd = "from spyder_kernels.console import start; start.main()"
with setup_kernel(cmd) as client:
# Write code to a file
d = tmpdir.join("pdb-ns-test.py")
d.write('def func():\n bb = "hello"\n breakpoint()\nfunc()')
# Run code file `d`
client.execute("%runfile {}".format(repr(str(d))))
# make sure that 'bb' returns 'hello'
> client.get_stdin_msg(timeout=TIMEOUT)
console/tests/test_console_kernel.py:1248:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/asyncio/base_events.py:719: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/jupyter_client/client.py:174: in _async_get_stdin_msg
return await ensure_async(self.stdin_channel.get_msg(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <jupyter_client.channels.ZMQSocketChannel object at 0x7fe31f45ea50>
timeout = 15
def get_msg(self, timeout: t.Optional[float] = None) -> t.Dict[str, t.Any]:
"""Gets a message if there is one that is ready."""
assert self.socket is not None
timeout_ms = None if timeout is None else int(timeout * 1000) # seconds to ms
ready = self.socket.poll(timeout_ms)
if ready:
res = self._recv()
return res
else:
> raise Empty
E _queue.Empty
/usr/lib/python3/dist-packages/jupyter_client/channels.py:232: Empty
_____________________ test_enter_debug_after_interruption ______________________
def test_enter_debug_after_interruption():
"""
Test that we can enter the debugger after interrupting the current
execution.
"""
# Command to start the kernel
cmd = "from spyder_kernels.console import start; start.main()"
with setup_kernel(cmd) as client:
kernel_comm = CommBase()
# Create new comm and send the highest protocol
comm = Comm(kernel_comm._comm_name, client)
comm.open(data={})
comm._send_channel = client.control_channel
kernel_comm._register_comm(comm)
client.execute_interactive("import time", timeout=TIMEOUT)
# Try interrupting loop
t0 = time.time()
msg_id = client.execute("for i in range(100): time.sleep(.1)")
time.sleep(.2)
# Request to enter the debugger
kernel_comm.remote_call().request_pdb_stop()
# Wait for debug message
while True:
> assert time.time() - t0 < 5
E assert (1765898305.2064729 - 1765898299.7481673) < 5
E + where 1765898305.2064729 = <built-in function time>()
E + where <built-in function time> = time.time
console/tests/test_console_kernel.py:1352: AssertionError
----------------------------- Captured stdout call -----------------------------
Program interrupted. (Use 'cont' to resume).
=============================== warnings summary ===============================
console/tests/test_console_kernel.py:29
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:29: DeprecationWarning: Jupyter is migrating its paths to use standard platformdirs
given by the platformdirs library. To remove this warning and
see the appropriate new directories, set the environment variable
`JUPYTER_PLATFORM_DIRS=1` and then run `jupyter --paths`.
The use of platformdirs will be the default in `jupyter_core` v6
from jupyter_core import paths
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_do_complete
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb_2
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_namespaces_in_pdb
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb_2
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_locals_globals_in_pdb
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_hard_link_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/spyder_kernels/customize/spyderpdb.py:78: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
self.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_do_complete
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/spyder_kernels/customize/spyderpdb.py:421: DeprecationWarning: The frame locals reference is no longer cached. Use 'curframe.f_locals' instead.
if self.curframe_locals:
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_do_complete
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/spyder_kernels/customize/spyderpdb.py:423: DeprecationWarning: The frame locals reference is no longer cached. Use 'curframe.f_locals' instead.
frame = Frame(self.curframe_locals,
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:942: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = pdb_obj.curframe.f_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py: 26 warnings
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/spyder_kernels/customize/spyderpdb.py:152: DeprecationWarning: The frame locals reference is no longer cached. Use 'curframe.f_locals' instead.
local_ns = self.curframe_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py: 15 warnings
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/spyder_kernels/console/shell.py:275: DeprecationWarning: The frame locals reference is no longer cached. Use 'curframe.f_locals' instead.
return session.curframe_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:958: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb_2
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:968: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = pdb_obj.curframe.f_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_comprehensions_with_locals_in_pdb_2
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:982: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_namespaces_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:994: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = pdb_obj.curframe.f_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_namespaces_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1016: DeprecationWarning: The frame locals reference is no longer cached. Use 'curframe.f_locals' instead.
pdb_obj.curframe_locals["test4"] = 0
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_namespaces_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1025: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1037: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = kernel.shell.user_ns
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb_2
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1069: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = pdb_obj.curframe.f_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb_2
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1096: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_locals_globals_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1106: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = pdb_obj.curframe.f_locals
.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py::test_locals_globals_in_pdb
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/console/tests/test_console_kernel.py:1138: DeprecationWarning: Setting 'curframe_locals' no longer has any effect. Update the contents of 'curframe.f_locals' instead.
pdb_obj.curframe_locals = None
.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py::test_get_type_string
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py:335: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py::test_is_editable_type
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py:390: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py::test_get_numpy_type
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build/utils/tests/test_nsview.py:428: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===Flaky Test Report===
test_cwd_in_sys_path passed 1 out of the required 1 times. Success!
test_multiprocessing passed 1 out of the required 1 times. Success!
test_multiprocessing_2 passed 1 out of the required 1 times. Success!
test_runfile passed 1 out of the required 1 times. Success!
test_np_threshold passed 1 out of the required 1 times. Success!
test_matplotlib_inline passed 1 out of the required 1 times. Success!
test_debug_namespace failed (2 runs remaining out of 3).
<class '_queue.Empty'>
[<TracebackEntry /usr/lib/python3/dist-packages/_pytest/run [too-long-redacted] upyter_client/channels.py:232>]
test_debug_namespace failed (1 runs remaining out of 3).
<class '_queue.Empty'>
[<TracebackEntry /usr/lib/python3/dist-packages/_pytest/run [too-long-redacted] upyter_client/channels.py:232>]
test_debug_namespace failed; it passed 0 out of the required 1 times.
<class '_queue.Empty'>
[<TracebackEntry /usr/lib/python3/dist-packages/_pytest/run [too-long-redacted] upyter_client/channels.py:232>]
===End Flaky Test Report===
=========================== short test summary info ============================
FAILED console/tests/test_console_kernel.py::test_functions_with_locals_in_pdb
FAILED console/tests/test_console_kernel.py::test_debug_namespace - _queue.Empty
FAILED console/tests/test_console_kernel.py::test_enter_debug_after_interruption
= 3 failed, 93 passed, 6 skipped, 1 deselected, 67 warnings in 90.82s (0:01:30) =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_spyder-kernels/build; python3.14 -m pytest --ignore customize/tests/test_umr.py -k "not test_dask_multiprocessing"
I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build; python3.13 -m pytest --ignore customize/tests/test_umr.py -k "not test_dask_multiprocessing"
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>
plugins: flaky-3.8.1, typeguard-4.4.4
collected 103 items / 1 deselected / 102 selected
console/tests/test_console_kernel.py ......................s............ [ 34%]
ssss.......s [ 46%]
customize/tests/test_utils.py . [ 47%]
utils/tests/test_dochelpers.py ..................... [ 67%]
utils/tests/test_iofuncs.py ............. [ 80%]
utils/tests/test_lazymodules.py .. [ 82%]
utils/tests/test_nsview.py ............... [ 97%]
utils/tests/test_pythonenv.py ... [100%]
=============================== warnings summary ===============================
console/tests/test_console_kernel.py:29
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build/console/tests/test_console_kernel.py:29: DeprecationWarning: Jupyter is migrating its paths to use standard platformdirs
given by the platformdirs library. To remove this warning and
see the appropriate new directories, set the environment variable
`JUPYTER_PLATFORM_DIRS=1` and then run `jupyter --paths`.
The use of platformdirs will be the default in `jupyter_core` v6
from jupyter_core import paths
.pybuild/cpython3_3.13_spyder-kernels/build/console/tests/test_console_kernel.py::test_load_data
.pybuild/cpython3_3.13_spyder-kernels/build/console/tests/test_console_kernel.py::test_save_namespace
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_iofuncs.py::test_spydata_import[export_data.spydata]
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_iofuncs.py::test_spydata_import[export_data_renamed.spydata]
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_iofuncs.py::test_spydata_import_witherror
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_iofuncs.py::test_spydata_export[spydata_values-spydata_values-export_data_copy]
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_iofuncs.py::test_spydata_export[namespace_objects_full-namespace_objects_filtered-export_data_2]
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build/spyder_kernels/utils/iofuncs.py:390: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
tar.extractall(path, members, numeric_owner=numeric_owner)
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py::test_get_type_string
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py:335: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py::test_is_editable_type
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py:390: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py::test_get_numpy_type
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_spyder-kernels/build/utils/tests/test_nsview.py:428: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
matrix = np.matrix([[1, 2], [3, 4]])
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===Flaky Test Report===
test_cwd_in_sys_path passed 1 out of the required 1 times. Success!
test_multiprocessing passed 1 out of the required 1 times. Success!
test_multiprocessing_2 passed 1 out of the required 1 times. Success!
test_runfile passed 1 out of the required 1 times. Success!
test_np_threshold passed 1 out of the required 1 times. Success!
test_matplotlib_inline passed 1 out of the required 1 times. Success!
test_debug_namespace passed 1 out of the required 1 times. Success!
===End Flaky Test Report===
========== 96 passed, 6 skipped, 1 deselected, 11 warnings in 34.68s ===========
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13
make: *** [debian/rules:9: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
More information about the debian-science-maintainers
mailing list