Source: jsonpickle
Version: 4.0.2+dfsg-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20250414 ftbfs-trixie

Hi,

During a rebuild of all packages in testing (trixie), your package failed
to build on i386.


Relevant part (hopefully):
>  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 
> /build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13  
> * Building wheel...
> running bdist_wheel
> running build
> running build_py
> creating build/lib/jsonpickle
> copying jsonpickle/util.py -> build/lib/jsonpickle
> copying jsonpickle/handlers.py -> build/lib/jsonpickle
> copying jsonpickle/compat.py -> build/lib/jsonpickle
> copying jsonpickle/tags.py -> build/lib/jsonpickle
> copying jsonpickle/backend.py -> build/lib/jsonpickle
> copying jsonpickle/tags_pd.py -> build/lib/jsonpickle
> copying jsonpickle/version.py -> build/lib/jsonpickle
> copying jsonpickle/pickler.py -> build/lib/jsonpickle
> copying jsonpickle/unpickler.py -> build/lib/jsonpickle
> copying jsonpickle/errors.py -> build/lib/jsonpickle
> copying jsonpickle/__init__.py -> build/lib/jsonpickle
> creating build/lib/jsonpickle/ext
> copying jsonpickle/ext/pandas.py -> build/lib/jsonpickle/ext
> copying jsonpickle/ext/numpy.py -> build/lib/jsonpickle/ext
> copying jsonpickle/ext/__init__.py -> build/lib/jsonpickle/ext
> copying jsonpickle/ext/gmpy.py -> build/lib/jsonpickle/ext
> running egg_info
> writing jsonpickle.egg-info/PKG-INFO
> writing dependency_links to jsonpickle.egg-info/dependency_links.txt
> writing requirements to jsonpickle.egg-info/requires.txt
> writing top-level names to jsonpickle.egg-info/top_level.txt
> reading manifest file 'jsonpickle.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'jsonpickle.egg-info/SOURCES.txt'
> installing to build/bdist.linux-i686/wheel
> running install
> running install_lib
> creating build/bdist.linux-i686/wheel
> creating build/bdist.linux-i686/wheel/jsonpickle
> copying build/lib/jsonpickle/util.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/handlers.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/compat.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/tags.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/backend.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/tags_pd.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> creating build/bdist.linux-i686/wheel/jsonpickle/ext
> copying build/lib/jsonpickle/ext/pandas.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle/ext
> copying build/lib/jsonpickle/ext/numpy.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle/ext
> copying build/lib/jsonpickle/ext/__init__.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle/ext
> copying build/lib/jsonpickle/ext/gmpy.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle/ext
> copying build/lib/jsonpickle/version.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/pickler.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/unpickler.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/errors.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> copying build/lib/jsonpickle/__init__.py -> 
> build/bdist.linux-i686/wheel/./jsonpickle
> running install_egg_info
> Copying jsonpickle.egg-info to 
> build/bdist.linux-i686/wheel/./jsonpickle-4.0.2+dfsg.egg-info
> running install_scripts
> creating build/bdist.linux-i686/wheel/jsonpickle-4.0.2+dfsg.dist-info/WHEEL
> creating 
> '/build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13/.tmp-n6dcarpy/jsonpickle-4.0.2+dfsg-py3-none-any.whl'
>  and adding 'build/bdist.linux-i686/wheel' to it
> adding 'jsonpickle/__init__.py'
> adding 'jsonpickle/backend.py'
> adding 'jsonpickle/compat.py'
> adding 'jsonpickle/errors.py'
> adding 'jsonpickle/handlers.py'
> adding 'jsonpickle/pickler.py'
> adding 'jsonpickle/tags.py'
> adding 'jsonpickle/tags_pd.py'
> adding 'jsonpickle/unpickler.py'
> adding 'jsonpickle/util.py'
> adding 'jsonpickle/version.py'
> adding 'jsonpickle/ext/__init__.py'
> adding 'jsonpickle/ext/gmpy.py'
> adding 'jsonpickle/ext/numpy.py'
> adding 'jsonpickle/ext/pandas.py'
> adding 'jsonpickle-4.0.2+dfsg.dist-info/LICENSE'
> adding 'jsonpickle-4.0.2+dfsg.dist-info/METADATA'
> adding 'jsonpickle-4.0.2+dfsg.dist-info/WHEEL'
> adding 'jsonpickle-4.0.2+dfsg.dist-info/top_level.txt'
> adding 'jsonpickle-4.0.2+dfsg.dist-info/RECORD'
> removing build/bdist.linux-i686/wheel
> Successfully built jsonpickle-4.0.2+dfsg-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
> "installer" module
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd 
> /build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13/build; 
> python3.13 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
> rootdir: 
> /build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13/build
> configfile: pytest.ini
> plugins: typeguard-4.4.2
> collected 386 items
> 
> tests/backend_test.py .............sss                                   [  
> 4%]
> tests/bson_test.py ......                                                [  
> 5%]
> tests/collections_test.py ......                                         [  
> 7%]
> tests/datetime_test.py .................                                 [ 
> 11%]
> tests/document_test.py .                                                 [ 
> 11%]
> tests/ecdsa_test.py s                                                    [ 
> 12%]
> tests/feedparser_test.py .                                               [ 
> 12%]
> tests/handler_test.py ......                                             [ 
> 13%]
> tests/jsonpickle_test.py ............................................... [ 
> 26%]
> ........................................................................ [ 
> 44%]
> ..................................................                       [ 
> 57%]
> tests/numpy_test.py .....................                                [ 
> 63%]
> tests/object_test.py ................................................... [ 
> 76%]
> ....................                                                     [ 
> 81%]
> tests/pandas_test.py ....F.....................                          [ 
> 88%]
> tests/sklearn_test.py ..                                                 [ 
> 88%]
> tests/sqlalchemy_test.py ...                                             [ 
> 89%]
> tests/stdlib_test.py ...                                                 [ 
> 90%]
> tests/util_test.py ..................................                    [ 
> 99%]
> tests/wizard_test.py ..                                                  [ 
> 99%]
> tests/zoneinfo_test.py .                                                 
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ______________________ test_multindex_dataframe_roundtrip 
> ______________________
> 
> left = Index([1, 2], dtype='int64', name='idx_lvl1')
> right = Index([1, 2], dtype='int32', name='idx_lvl1')
> obj = 'MultiIndex level [1]'
> 
>     def _check_types(left, right, obj: str = "Index") -> None:
>         if not exact:
>             return
>     
>         assert_class_equal(left, right, exact=exact, obj=obj)
>         assert_attr_equal("inferred_type", left, right, obj=obj)
>     
>         # Skip exact dtype checking when `check_categorical` is False
>         if isinstance(left.dtype, CategoricalDtype) and isinstance(
>             right.dtype, CategoricalDtype
>         ):
>             if check_categorical:
>                 assert_attr_equal("dtype", left, right, obj=obj)
>                 assert_index_equal(left.categories, right.categories, 
> exact=exact)
>             return
>     
> >       assert_attr_equal("dtype", left, right, obj=obj)
> E       AssertionError: MultiIndex level [1] are different
> E       
> E       Attribute "dtype" are different
> E       [left]:  int64
> E       [right]: int32
> 
> /usr/lib/python3/dist-packages/pandas/_testing/asserters.py:247: 
> AssertionError
> 
> During handling of the above exception, another exception occurred:
> 
>     def test_multindex_dataframe_roundtrip():
>         df = pd.DataFrame(
>             {
>                 'idx_lvl0': ['a', 'b', 'c'],
>                 'idx_lvl1': np.int_([1, 1, 2]),
>                 'an_int': np.int_([1, 2, 3]),
>                 'a_float': np.float64([2.5, 3.5, 4.5]),
>                 'a_nan': np.array([np.nan] * 3),
>                 'a_minus_inf': np.array([-np.inf] * 3),
>                 'an_inf': np.array([np.inf] * 3),
>                 'a_str': np.str_('foo'),
>             }
>         )
>         df = df.set_index(['idx_lvl0', 'idx_lvl1'])
>     
>         decoded_df = roundtrip(df)
> >       assert_frame_equal(decoded_df, df)
> 
> tests/pandas_test.py:114: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> left = Index([1, 1, 2], dtype='int64', name='idx_lvl1')
> right = Index([1, 1, 2], dtype='int32', name='idx_lvl1')
> obj = 'MultiIndex level [1]'
> 
>     def _check_types(left, right, obj: str = "Index") -> None:
>         if not exact:
>             return
>     
>         assert_class_equal(left, right, exact=exact, obj=obj)
>         assert_attr_equal("inferred_type", left, right, obj=obj)
>     
>         # Skip exact dtype checking when `check_categorical` is False
>         if isinstance(left.dtype, CategoricalDtype) and isinstance(
>             right.dtype, CategoricalDtype
>         ):
>             if check_categorical:
>                 assert_attr_equal("dtype", left, right, obj=obj)
>                 assert_index_equal(left.categories, right.categories, 
> exact=exact)
>             return
>     
> >       assert_attr_equal("dtype", left, right, obj=obj)
> E       AssertionError: MultiIndex level [1] are different
> E       
> E       Attribute "dtype" are different
> E       [left]:  int64
> E       [right]: int32
> 
> /usr/lib/python3/dist-packages/pandas/_testing/asserters.py:247: 
> AssertionError
> =============================== warnings summary 
> ===============================
> tests/feedparser_test.py::FeedParserTestCase::test
> tests/feedparser_test.py::FeedParserTestCase::test
> tests/feedparser_test.py::FeedParserTestCase::test
> tests/feedparser_test.py::FeedParserTestCase::test
> tests/feedparser_test.py::FeedParserTestCase::test
> tests/feedparser_test.py::FeedParserTestCase::test
>   /usr/lib/python3/dist-packages/feedparser/html.py:152: DeprecationWarning: 
> 'count' is passed as positional argument
>     data = re.sub(r'<!((?!DOCTYPE|--|\[))', r'&lt;!\1', data, re.IGNORECASE)
> 
> tests/numpy_test.py::test_ndarray_roundtrip
> tests/numpy_test.py::test_ndarray_roundtrip
>   /usr/lib/python3/dist-packages/numpy/_core/records.py:136: 
> DeprecationWarning: Data type alias 'a' was deprecated in NumPy 2.0. Use the 
> 'S' alias instead.
>     dtype = sb.dtype(formats, aligned)
> 
> tests/numpy_test.py::test_ndarray_roundtrip
> tests/sklearn_test.py::test_decision_tree
>   
> /build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13/build/jsonpickle/ext/numpy.py:303:
>  UserWarning: ndarray is defined by reference to an object we do not know how 
> to serialize. A deep copy is serialized instead, breaking memory aliasing.
>     warnings.warn(msg)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED tests/pandas_test.py::test_multindex_dataframe_roundtrip - 
> AssertionEr...
> ============ 1 failed, 381 passed, 4 skipped, 10 warnings in 2.32s 
> =============
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
> /build/reproducible-path/jsonpickle-4.0.2+dfsg/.pybuild/cpython3_3.13/build; 
> python3.13 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2025/04/14/jsonpickle_4.0.2+dfsg-1_testing-i386.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250414;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to