Bug#1081627: FTBFS with Python 3.13

Stefano Rivera stefanor at debian.org
Fri Sep 13 11:07:17 BST 2024


Source: numcodecs
Version: 0.13.0+ds-1
Severity: normal
Tags: upstream
User: debian-python at lists.debian.org
Usertags: python3.13
https://github.com/zarr-developers/numcodecs/issues/553

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

numcodecs/tests/test_quantize.py .......                                 [ 83%]
numcodecs/tests/test_registry.py ...                                     [ 84%]
numcodecs/tests/test_shuffle.py ........................................ [ 90%]
....................                                                     [ 93%]
numcodecs/tests/test_vlen_array.py .......                               [ 94%]
numcodecs/tests/test_vlen_bytes.py .......                               [ 96%]
numcodecs/tests/test_vlen_utf8.py ........                               [ 97%]
numcodecs/tests/test_zlib.py .........                                   [ 98%]
numcodecs/tests/test_zstd.py .......F                                    [100%]

=================================== FAILURES ===================================
____________________________ test_native_functions _____________________________

    def test_native_functions():
        # Note, these assertions might need to be changed for new versions of zstd
>       assert Zstd.default_level == 3
E       assert default_level == 3
E        +  where default_level = Zstd.default_level

numcodecs/tests/test_zstd.py:93: AssertionError
=============================== warnings summary ===============================
numcodecs/tests/test_entrypoints_backport.py:11
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_numcodecs/build/numcodecs/tests/test_entrypoints_backport.py:11: DeprecationWarning: 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead
    if not pkgutil.find_loader("importlib_metadata"):  # pragma: no cover

numcodecs/tests/test_blosc.py: 15 warnings
numcodecs/tests/test_entrypoints_backport.py: 1 warning
numcodecs/tests/test_shuffle.py: 5 warnings
  /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=243) is multi-threaded, use of fork() may lead to deadlocks in the child.
    self.pid = os.fork()

numcodecs/tests/test_compat.py::test_ensure_contiguous_ndarray_invalid_inputs
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_numcodecs/build/numcodecs/tests/test_compat.py:81: DeprecationWarning: The 'u' type code is deprecated and will be removed in Python 3.16
    a = array.array('u', 'qwertyuiqwertyui')

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

-------- coverage: platform linux, python 3.13.0-candidate-2 ---------
Coverage XML written to file coverage.xml

=========================== short test summary info ============================
FAILED numcodecs/tests/test_zstd.py::test_native_functions - assert default_l...
= 1 failed, 563 passed, 37 skipped, 26 deselected, 36 xfailed, 23 warnings in 29.51s =
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_numcodecs/build; python3.13 -m pytest -k "not test_non_numpy_inputs and not test_non_numpy_inputs" --pyargs numcodecs
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build; python3.12 -m pytest -k "not test_non_numpy_inputs and not test_non_numpy_inputs" --pyargs numcodecs
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.2, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build
configfile: pyproject.toml
plugins: typeguard-4.3.0, cov-5.0.0
collected 659 items / 26 deselected / 4 skipped / 633 selected

numcodecs/astype.py .                                                    [  0%]
numcodecs/categorize.py .                                                [  0%]
numcodecs/delta.py .                                                     [  0%]
numcodecs/fixedscaleoffset.py .                                          [  0%]
numcodecs/json.py .                                                      [  0%]
numcodecs/msgpacks.py .                                                  [  0%]
numcodecs/packbits.py .                                                  [  1%]
numcodecs/pickles.py .                                                   [  1%]
numcodecs/quantize.py .                                                  [  1%]
numcodecs/registry.py .                                                  [  1%]
numcodecs/tests/test_astype.py ......                                    [  2%]
numcodecs/tests/test_base64.py ........                                  [  3%]
numcodecs/tests/test_bitround.py .............                           [  5%]
numcodecs/tests/test_blosc.py .......................................... [ 12%]
........................................................................ [ 23%]
...sssssssssssss................................................s....... [ 35%]
.....s...xxxxxxxxxsxxxxxxxxxxxxsxxxxxxxxxxxxsxxx.........s............s. [ 46%]
...........s............s............s............s............s........ [ 57%]
....s........................................s..ss                       [ 65%]
numcodecs/tests/test_bz2.py ......                                       [ 66%]
numcodecs/tests/test_categorize.py ......                                [ 67%]
numcodecs/tests/test_checksum32.py ......                                [ 68%]
numcodecs/tests/test_compat.py .......                                   [ 69%]
numcodecs/tests/test_delta.py ......                                     [ 70%]
numcodecs/tests/test_entrypoints.py .                                    [ 70%]
numcodecs/tests/test_entrypoints_backport.py .                           [ 71%]
numcodecs/tests/test_fixedscaleoffset.py ......                          [ 72%]
numcodecs/tests/test_fletcher32.py ......                                [ 72%]
numcodecs/tests/test_gzip.py ...........                                 [ 74%]
numcodecs/tests/test_jenkins.py .......                                  [ 75%]
numcodecs/tests/test_json.py ....                                        [ 76%]
numcodecs/tests/test_lz4.py .......                                      [ 77%]
numcodecs/tests/test_lzma.py ........                                    [ 78%]
numcodecs/tests/test_msgpacks.py ......                                  [ 79%]
numcodecs/tests/test_ndarray_like.py .s..s..s..s                         [ 81%]
numcodecs/tests/test_packbits.py ....                                    [ 82%]
numcodecs/tests/test_pickles.py ....                                     [ 82%]
numcodecs/tests/test_quantize.py .......                                 [ 83%]
numcodecs/tests/test_registry.py ...                                     [ 84%]
numcodecs/tests/test_shuffle.py ........................................ [ 90%]
....................                                                     [ 93%]
numcodecs/tests/test_vlen_array.py .......                               [ 94%]
numcodecs/tests/test_vlen_bytes.py .......                               [ 96%]
numcodecs/tests/test_vlen_utf8.py ........                               [ 97%]
numcodecs/tests/test_zlib.py .........                                   [ 98%]
numcodecs/tests/test_zstd.py ........                                    [100%]

=============================== warnings summary ===============================
numcodecs/tests/test_entrypoints_backport.py:11
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build/numcodecs/tests/test_entrypoints_backport.py:11: DeprecationWarning: 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead
    if not pkgutil.find_loader("importlib_metadata"):  # pragma: no cover

numcodecs/tests/test_blosc.py: 15 warnings
numcodecs/tests/test_entrypoints_backport.py: 1 warning
numcodecs/tests/test_shuffle.py: 5 warnings
  /usr/lib/python3.12/multiprocessing/popen_fork.py:66: DeprecationWarning: This process (pid=315) is multi-threaded, use of fork() may lead to deadlocks in the child.
    self.pid = os.fork()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform linux, python 3.12.6-final-0 -----------
Coverage XML written to file coverage.xml

=== 564 passed, 37 skipped, 26 deselected, 36 xfailed, 22 warnings in 13.63s ===
I: pybuild pybuild:334: rm -rf /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build/fixture /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build/.coverage /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_numcodecs/build/coverage.xml
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13
make: *** [debian/rules:15: binary-arch] Error 25
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-13T09:18:53Z


If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/709852/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano



More information about the debian-science-maintainers mailing list