#1129141 python-better-exceptions: FTBFS: failing tests

#1129141#5
Date:
2026-02-27 00:55:16 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/202602/

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:python-better-exceptions, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 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:142: Building wheel for python3.14 with "build" module
I: pybuild base:384: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/dist.py:599: SetuptoolsDeprecationWarning: Invalid dash-separated key 'description-file' in 'metadata' (setup.cfg), please use the underscore name 'description_file' instead.
!!

        ********************************************************************************
        Usage of dash-separated 'description-file' will not be supported in future
        versions. Please use the underscore name 'description_file' instead.
        (Affected: better_exceptions).

        By 2026-Mar-03, you need to update your project and remove deprecated calls
        or your builds will no longer be supported.

        See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
        ********************************************************************************

!!
  opt = self._enforce_underscore(opt, section)
running bdist_wheel
running build
running build_py
creating build/lib/better_exceptions
copying better_exceptions/formatter.py -> build/lib/better_exceptions
copying better_exceptions/repl.py -> build/lib/better_exceptions
copying better_exceptions/log.py -> build/lib/better_exceptions
copying better_exceptions/__main__.py -> build/lib/better_exceptions
copying better_exceptions/color.py -> build/lib/better_exceptions
copying better_exceptions/__init__.py -> build/lib/better_exceptions
creating build/lib/better_exceptions/integrations
copying better_exceptions/integrations/django.py -> build/lib/better_exceptions/integrations
copying better_exceptions/integrations/__init__.py -> build/lib/better_exceptions/integrations
copying /<<PKGBUILDDIR>>/better_exceptions_hook.pth -> build/lib
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
copying build/lib/better_exceptions_hook.pth -> build/bdist.linux-x86_64/wheel/.
creating build/bdist.linux-x86_64/wheel/better_exceptions
copying build/lib/better_exceptions/formatter.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/repl.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/log.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
creating build/bdist.linux-x86_64/wheel/better_exceptions/integrations
copying build/lib/better_exceptions/integrations/django.py -> build/bdist.linux-x86_64/wheel/./better_exceptions/integrations
copying build/lib/better_exceptions/integrations/__init__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions/integrations
copying build/lib/better_exceptions/__main__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/color.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/__init__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
running install_egg_info
running egg_info
creating better_exceptions.egg-info
writing better_exceptions.egg-info/PKG-INFO
writing dependency_links to better_exceptions.egg-info/dependency_links.txt
writing requirements to better_exceptions.egg-info/requires.txt
writing top-level names to better_exceptions.egg-info/top_level.txt
writing manifest file 'better_exceptions.egg-info/SOURCES.txt'
reading manifest file 'better_exceptions.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE.txt'
writing manifest file 'better_exceptions.egg-info/SOURCES.txt'
Copying better_exceptions.egg-info to build/bdist.linux-x86_64/wheel/./better_exceptions-0.4.0.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/better_exceptions-0.4.0.dist-info/WHEEL
creating '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/.tmp-b7cuo9xy/better_exceptions-0.4.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'better_exceptions_hook.pth'
adding 'better_exceptions/__init__.py'
adding 'better_exceptions/__main__.py'
adding 'better_exceptions/color.py'
adding 'better_exceptions/formatter.py'
adding 'better_exceptions/log.py'
adding 'better_exceptions/repl.py'
adding 'better_exceptions/integrations/__init__.py'
adding 'better_exceptions/integrations/django.py'
adding 'better_exceptions-0.4.0.dist-info/licenses/LICENSE.txt'
adding 'better_exceptions-0.4.0.dist-info/METADATA'
adding 'better_exceptions-0.4.0.dist-info/WHEEL'
adding 'better_exceptions-0.4.0.dist-info/top_level.txt'
adding 'better_exceptions-0.4.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built better_exceptions-0.4.0-py3-none-any.whl
I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.14 with "installer" module
I: pybuild plugin_pyproject:142: Building wheel for python3.13 with "build" module
I: pybuild base:384: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/dist.py:599: SetuptoolsDeprecationWarning: Invalid dash-separated key 'description-file' in 'metadata' (setup.cfg), please use the underscore name 'description_file' instead.
!!

        ********************************************************************************
        Usage of dash-separated 'description-file' will not be supported in future
        versions. Please use the underscore name 'description_file' instead.
        (Affected: better_exceptions).

        By 2026-Mar-03, you need to update your project and remove deprecated calls
        or your builds will no longer be supported.

        See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
        ********************************************************************************

!!
  opt = self._enforce_underscore(opt, section)
running bdist_wheel
running build
running build_py
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
copying build/lib/better_exceptions_hook.pth -> build/bdist.linux-x86_64/wheel/.
creating build/bdist.linux-x86_64/wheel/better_exceptions
copying build/lib/better_exceptions/formatter.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/repl.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/log.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
creating build/bdist.linux-x86_64/wheel/better_exceptions/integrations
copying build/lib/better_exceptions/integrations/django.py -> build/bdist.linux-x86_64/wheel/./better_exceptions/integrations
copying build/lib/better_exceptions/integrations/__init__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions/integrations
copying build/lib/better_exceptions/__main__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/color.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
copying build/lib/better_exceptions/__init__.py -> build/bdist.linux-x86_64/wheel/./better_exceptions
running install_egg_info
running egg_info
writing better_exceptions.egg-info/PKG-INFO
writing dependency_links to better_exceptions.egg-info/dependency_links.txt
writing requirements to better_exceptions.egg-info/requires.txt
writing top-level names to better_exceptions.egg-info/top_level.txt
reading manifest file 'better_exceptions.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE.txt'
writing manifest file 'better_exceptions.egg-info/SOURCES.txt'
Copying better_exceptions.egg-info to build/bdist.linux-x86_64/wheel/./better_exceptions-0.4.0.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/better_exceptions-0.4.0.dist-info/WHEEL
creating '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/.tmp-b4er7eu3/better_exceptions-0.4.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'better_exceptions_hook.pth'
adding 'better_exceptions/__init__.py'
adding 'better_exceptions/__main__.py'
adding 'better_exceptions/color.py'
adding 'better_exceptions/formatter.py'
adding 'better_exceptions/log.py'
adding 'better_exceptions/repl.py'
adding 'better_exceptions/integrations/__init__.py'
adding 'better_exceptions/integrations/django.py'
adding 'better_exceptions-0.4.0.dist-info/licenses/LICENSE.txt'
adding 'better_exceptions-0.4.0.dist-info/METADATA'
adding 'better_exceptions-0.4.0.dist-info/WHEEL'
adding 'better_exceptions-0.4.0.dist-info/top_level.txt'
adding 'better_exceptions-0.4.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built better_exceptions-0.4.0-py3-none-any.whl
I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.13 with "installer" module
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
bash test_all.sh
test/output/python3-xterm-ascii-nocolor.out
    python3 test/test.py 
    python3 test/test_color.py 
    python3 test/test_encoding.py 
    ./test/test_interactive.sh 
    ./test/test_string.sh 
    python3 test/test_logging.py 
    python3 test/test_truncating.py 
    python3 test/test_truncating_disabled.py 
    python3 test/test_indentation_error.py 
    python3 test/test_syntax_error.py 
78c78
<                               -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
86c86
<                               -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
96c96
<                                                                      -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
105c105
<                                                                      -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
116c116
<                                                                      -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
125c125
<                                                                      -> <module 'test_module' from '/removed/for/test/purposes.py'>
---
make[1]: *** [debian/rules:9: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1129141#10
Date:
2026-02-27 13:28:33 UTC
From:
To:
Hi,
Thanks for your report

The problem seems to be with this line. (the second sed)
https://salsa.debian.org/python-team/packages/python-better-exceptions/-/blob/master/test_all.sh?ref_type=heads#L26

The script couldn't change your build path. maybe a regex issue

I changed the source code in a new repo:
https://salsa.debian.org/amin_modaresi/test_python

please run it one time with

without_normalize.patch

and another time with

normalize.patch

Then send me /tmp/

normalize and

/tmp/without_normalize dirs. sent me tar of they

#1129141#15
Date:
2026-02-27 15:27:09 UTC
From:
To:
severity 1129141 important
thanks

Hi.

This is very strange because the bug happens in my autobuilding setup
but not if I try to reproduce it by hand.

Please allow me some time to see what's going on.
(I'm downgrading until then).

Thanks.

#1129141#22
Date:
2026-04-25 21:20:23 UTC
From:
To:
Hello.

This is still happening in the latest version uploaded a few days ago.

I offered a VM in the past to reproduce, but it should not be necessary
anymore because now we know the way to reproduce it: Please put this
in your $HOME/.config/sbuild/config.pl

$build_path = "";
$run_lintian = 0;
$chroot_mode = "schroot";
$schroot = "schroot";
1;

and then try building the package using sbuild.

I think the package is doing some assumptions about the build path
which do not necessarily have to happen.

Thanks.

#1129141#27
Date:
2026-06-11 07:07:16 UTC
From:
To:
control: severity -1 normal
#1129141#34
Date:
2026-06-11 07:08:14 UTC
From:
To: