Source: jsonpickle
Version: 4.0.2+dfsg-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
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'<!\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;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&[email protected]&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.