#1123355 spyder-kernels: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13

#1123355#5
Date:
2025-12-16 19:50:44 UTC
From:
To:
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.
!!

        ********************************************************************************
        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 ...]

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:
E           _queue.Empty

/usr/lib/python3/dist-packages/jupyter_client/channels.py:232: Empty

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]])

#1123355#12
Date:
2026-03-02 15:23:30 UTC
From:
To:
This bug occurs with python 3.14 only, not python 3.13.

Roland has applied a workaround in 3.1.3-1 to constrain spyder-kernels
tests to python 3.13 for now.

Upstream is alerted at
https://github.com/spyder-ide/spyder-kernels/issues/583

Reducing severity to important since tests pass with python 3.13.

#1123355#21
Date:
2026-09-06 21:22:19 UTC
From:
To:
user debian-python@lists.debian.org
usertags 1123355 python3.15
tags 1123355 patch
thanks

Hi!

While rebuilding the python related packages against the Python 3.15rc2
version I ran into this issue [1].

I have picked a few patches from upstream that take care of the problem:
  - Upstream commit 886bc9d: Use curframe.f_locals instead of
    curframe_locals in debugger for newer Python versions [2]
  - Upstream commit 155fa01: Fix test_functions_with_locals_in_pdb in
    Python 3.14 [3]

Additionally, I had to add one patch of my own, overriding the get_trace
function to workaround a recent change in the pdb behaviour. This patch
should be shared with upstream in
https://github.com/spyder-ide/spyder-kernels/issues/583

And finally, the autopkgtest test named pytest had a hardcoded
PYS=python3.13, replacing the use of py3version -s, not sure why that
was there, but since we are removing python3.13 from the archive I
assume that you don't want it anymore. Using the original py3versions -s
call, the autopkgtest is green again.

I've applied these fixes in the sandbox [4] to verify that it builds
successfully, please consider applying them to support the upcoming 3.15
version.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4589710/
[2]: https://github.com/spyder-ide/spyder-kernels/commit/886bc9d2c613f96ea9b323ee4a1f7e827c29cc00
[3]: https://github.com/spyder-ide/spyder-kernels/commit/155fa010d96a3436c575cefb0ea6eb313e1c280c
[4]: https://debusine.debian.net/debian/r-python-python3.15/

#1123355#28
Date:
2026-09-25 10:24:53 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
spyder-kernels, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1123355@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Maximiliano Curia <maxy@debian.org> (supplier of updated spyder-kernels package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 25 Sep 2026 12:09:16 +0200
Source: spyder-kernels
Architecture: source
Version: 3.1.3-4
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Maximiliano Curia <maxy@debian.org>
Closes: 1028430 1123355 1125276
Changes:
 spyder-kernels (3.1.3-4) unstable; urgency=medium
 .
   * Team upload.
   * Add upstream patch: Backport-PR-591-on-branch-3.x-PR-Use-generic-args-kwa.patch
   * Add upstream patch: spyderpdb.py-replace-curframe_locals-with-curframe.f_locals.patch
   * Add patch: allow-set_trace-to-accept-generic-args-and-kwargs.patch
     (Closes: #1123355)
   * debian/tests/pytest: Run tests for all supported Python 3 versions.
   * debian/control: Relax versioned dependency on python3-ipykernel
     (Closes: #1125276)
   * debian/tests/pytest: Skip flaky test_dask_multiprocessing (Closes: #1028430)
Checksums-Sha1:
 1d819ba88491f65e41ec970340c1b975ec3c2a1a 2987 spyder-kernels_3.1.3-4.dsc
 09648979cdde1df557c125745a0a8a1fe540e5be 8344 spyder-kernels_3.1.3-4.debian.tar.xz
 10ae8646ae31c4215766fb62c54313dfd76d72a4 14310 spyder-kernels_3.1.3-4_source.buildinfo
Checksums-Sha256:
 65be57adbc2da7ed589ae9c5bf28f100d1206570b06ccd590d30dad6957a1382 2987 spyder-kernels_3.1.3-4.dsc
 2b7700a74800b9a0f4143350c4645d433cf2e96d66385f146fb4c53a4b7007a3 8344 spyder-kernels_3.1.3-4.debian.tar.xz
 f12ba4e5b1d6cd89d6c0c9f7f8913c21c34f921616e0c459e36908939e70cc91 14310 spyder-kernels_3.1.3-4_source.buildinfo
Files:
 69421ab2e5c1329515e261e21427e015 2987 python optional spyder-kernels_3.1.3-4.dsc
 a8bd2010c734ad8637fca08f8bb0afa1 8344 python optional spyder-kernels_3.1.3-4.debian.tar.xz
 3f05bb366c68d1eb23f4b4bf21f00dcb 14310 python optional spyder-kernels_3.1.3-4_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE+JIdOnQEyG4RNSIVxxl2mbKbIyoFAmq2SHIACgkQxxl2mbKb
Iypl2RAAsbbLiWOfgM9nDm/WIdbRLLIoUMw4RjWH0rbXckXetrgQClt8OJttDDY9
XrwBUDSoyKD2kUsz5AZEhdxQ7l8PFbeS3A4bxbWXtalBc0nED5f1sh1CYS8wtmyV
OwUxDaOFBF1OumSD0opz6SB6X6rgqxAobRIJPFUk6rzkRQUBaxt1iAKOZ0oIRMa4
BwlqXrLyIw5YMyggz/pFTSEkqmkYU4DeKvHIsBBKxpJT/uxUQHPM1DThi1Wb9gUx
xL+PhIPJSoz2oGWP3NxMJFMruCvPIbWHTMs0O6AglMvQGJmCcN0cbmxdba2R8G2i
fovXUupu+3Qo3YnNdf8T313BfPjuVfntbJcNfCEbiKYgp1DgRb1tr09tRLRTjZ4H
mgD95KzzVFhygMd4WE2zomdRT69QW/fedsze5VMJaOkHdcJhL4MM0Fg0LSecc7QR
XkWkVMfMo9jh1IcbMoeQaQ5ITBKJiPiRcN6f+1gFZzZRq+JAghAUsCO59HiDFAva
Zp3HLMaj3saBM7ZkJO4C/4F/hxCVUm3X7ZUWL/McMaiydP6T+ZQWUe65i4QBcuPh
bEcJnVmn3uaspwIGCf+oorlXBNMcWSiAr8hkJERNJRJgJH1XChxOKlxQWOk35HzL
DtYQ1GIAsMRVcyTalwribmFZyUOQwITSwsbqDj7l1h5hTPhCqW0=
=IqmI
-----END PGP SIGNATURE-----