Source: python-boltons Version: 24.0.0-1 Severity: normal User: debian-pyt...@lists.debian.org Usertags: python3.13 Forwarded: https://github.com/mahmoud/boltons/issues/365
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: tests/test_tbutils_parsed_exc.py ... [ 68%] tests/test_timeutils.py .... [ 69%] tests/test_typeutils.py .. [ 70%] tests/test_urlutils.py ................................................. [ 81%] ........................................................................ [ 99%] ... [100%] =================================== FAILURES =================================== _____________________________ test_exception_info ______________________________ def test_exception_info(): # test ExceptionInfo and TracebackInfo and hooks, via StringIOs builtin_exc_hook = sys.excepthook fix_print_exception() tbi_str = '' def test(): raise ValueError('yay fun') fake_stderr1 = StringIO() fake_stderr2 = StringIO() sys.stderr = fake_stderr1 try: test() except: _, _, exc_traceback = sys.exc_info() tbi = TracebackInfo.from_traceback(exc_traceback) exc_info = ExceptionInfo.from_exc_info(*sys.exc_info()) exc_info2 = ExceptionInfo.from_current() tbi_str = str(tbi) print_exception(*sys.exc_info(), file=fake_stderr2) new_exc_hook_res = fake_stderr2.getvalue() builtin_exc_hook(*sys.exc_info()) builtin_exc_hook_res = fake_stderr1.getvalue() finally: sys.stderr = sys.__stderr__ # Single frame single_frame_str = tbi.frames[-1].tb_frame_str() assert 'in test' in single_frame_str assert 'yay fun' in single_frame_str # Traceback info assert len(tbi_str.splitlines()) == 5 assert 'yay fun' in tbi_str # Full except hook output assert 'ValueError: yay fun' in new_exc_hook_res assert "ValueError('yay fun')" in new_exc_hook_res assert len(new_exc_hook_res) > len(tbi_str) > assert new_exc_hook_res == builtin_exc_hook_res E assert 'Traceback (m...or: yay fun\n' == 'Traceback (m...or: yay fun\n' E E Skipping 190 identical leading characters in diff, use -v to show E test() E - ~~~~^^ E File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/tests/test_tbutils.py", line 21, in test E raise ValueError('yay fun') E ValueError: yay fun tests/test_tbutils.py:56: AssertionError =============================== warnings summary =============================== tests/conftest.py:8 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/tests/conftest.py:8: PytestRemovedIn9Warning: The (path: py.path.local) argument is deprecated, please use (collection_path: pathlib.Path) see https://docs.pytest.org/en/latest/deprecations.html#py-path-local-arguments-for-hooks-replaced-with-pathlib-path def pytest_ignore_collect(path, config): boltons/ecoutils.py:259 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/boltons/ecoutils.py:259: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). return datetime.datetime.utcnow() boltons/timeutils.py:426 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/boltons/timeutils.py:426: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). EPOCH_NAIVE = datetime.utcfromtimestamp(0) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_tbutils.py::test_exception_info - assert 'Traceback (m...or... ================== 1 failed, 415 passed, 3 warnings in 8.85s =================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build; python3.13 -m pytest tests I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build; python3.12 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0 rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build configfile: pytest.ini plugins: typeguard-4.3.0 collected 416 items tests/test_cacheutils.py .................. [ 4%] tests/test_debugutils_trace.py ...... [ 5%] tests/test_dictutils.py ........................... [ 12%] tests/test_ecoutils.py .. [ 12%] tests/test_fileutils.py . [ 12%] tests/test_formatutils.py ..... [ 14%] tests/test_funcutils.py ..... [ 15%] tests/test_funcutils_fb.py ............... [ 18%] tests/test_funcutils_fb_py3.py ...................... [ 24%] tests/test_gcutils.py .. [ 24%] tests/test_ioutils.py .................................................. [ 36%] ................................ [ 44%] tests/test_iterutils.py ........................................ [ 54%] tests/test_jsonutils.py .. [ 54%] tests/test_listutils.py .. [ 55%] tests/test_mathutils.py ........... [ 57%] tests/test_namedutils.py ... [ 58%] tests/test_queueutils.py .. [ 58%] tests/test_setutils.py ..... [ 60%] tests/test_socketutils.py ........... [ 62%] tests/test_statsutils.py . [ 62%] tests/test_statsutils_histogram.py .. [ 63%] tests/test_strutils.py .............. [ 66%] tests/test_tableutils.py ... [ 67%] tests/test_tbutils.py .. [ 68%] tests/test_tbutils_parsed_exc.py ... [ 68%] tests/test_timeutils.py .... [ 69%] tests/test_typeutils.py .. [ 70%] tests/test_urlutils.py ................................................. [ 81%] ........................................................................ [ 99%] ... [100%] =============================== warnings summary =============================== tests/conftest.py:8 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/tests/conftest.py:8: PytestRemovedIn9Warning: The (path: py.path.local) argument is deprecated, please use (collection_path: pathlib.Path) see https://docs.pytest.org/en/latest/deprecations.html#py-path-local-arguments-for-hooks-replaced-with-pathlib-path def pytest_ignore_collect(path, config): boltons/ecoutils.py:259 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/boltons/ecoutils.py:259: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). return datetime.datetime.utcnow() boltons/timeutils.py:426 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/boltons/timeutils.py:426: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). EPOCH_NAIVE = datetime.utcfromtimestamp(0) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======================= 416 passed, 3 warnings in 2.40s ======================== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 make: *** [debian/rules:6: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 2024-09-18T22:51:41Z If required, the full build log is available here (for the next 30 days): https://debusine.debian.net/artifact/781375/ 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