Source: towncrier Version: 24.8.0-2 Severity: normal Justification: FTBFS Tags: ftbfs experimental User: [email protected] Usertags: python3-click-8.3.3
Hi, I have completed a rebuild of the reverse dependencies of python3-click in order to add support for version 8.3.3. The package towncrier was found to fail to build in that situation. To reproduce this locally, you need to install python3-click from experimental on an unstable system or build chroot. Like this: sbuild --extra-repository='deb http://deb.debian.org/debian experimental main' --starting-build-commands='apt-get update && apt-get -t experimental install --only-upgrade -y python-click' Relevant part (hopefully): > debian/rules binary > dh binary --with python3 --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.13 with "build" > module > I: pybuild base:385: python3.13 -m build --skip-dependency-check > --no-isolation --wheel --outdir > /build/reproducible-path/towncrier-24.8.0/.pybuild/cpython3_3.13 > * Building wheel... > Successfully built towncrier-24.8.0-py3-none-any.whl > I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.13 with > "installer" module > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:385: cd > /build/reproducible-path/towncrier-24.8.0/.pybuild/cpython3_3.13/build; > python3.13 -m pytest "/build/reproducible-path/towncrier-24.8.0"/src/ > ============================= test session starts > ============================== > platform linux -- Python 3.13.12, pytest-9.0.3, pluggy-1.6.0 > rootdir: /build/reproducible-path/towncrier-24.8.0 > configfile: pyproject.toml > collected 148 items > > ../../../src/towncrier/test/test_build.py .....FF........FF............. [ > 20%] > ............ [ > 28%] > ../../../src/towncrier/test/test_builder.py ................. [ > 39%] > ../../../src/towncrier/test/test_check.py ..................F. [ > 53%] > ../../../src/towncrier/test/test_create.py ............................. [ > 72%] > [ > 72%] > ../../../src/towncrier/test/test_format.py ...... [ > 77%] > ../../../src/towncrier/test/test_git.py . [ > 77%] > ../../../src/towncrier/test/test_project.py ............. [ > 86%] > ../../../src/towncrier/test/test_settings.py ............... [ > 96%] > ../../../src/towncrier/test/test_write.py ..... > [100%] > > =================================== FAILURES > =================================== > ______________________ TestCli.test_default_start_string > _______________________ > > self = <towncrier.test.test_build.TestCli > testMethod=test_default_start_string> > runner = <click.testing.CliRunner object at 0x7f1acd03db50> > > @with_project() > def test_default_start_string(self, runner): > """ > The default start string is ``.. towncrier release notes start``. > """ > write("foo/newsfragments/123.feature", "Adds levitation") > write( > "NEWS.rst", > contents=""" > a line > > another > > .. towncrier release notes start > > a footer! > """, > dedent=True, > ) > > result = runner.invoke(_main, ["--date", "01-01-2001"], > catch_exceptions=False) > > self.assertEqual(0, result.exit_code, result.output) > > ../../../src/towncrier/test/test_build.py:1323: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:444: in assertEqual > super().assertEqual(first, second, msg) > E twisted.trial.unittest.FailTest: 0 != 1 : Loading template... > E Finding news fragments... > E Rendering news fragments... > E Writing to newsfile... > E Staging newsfile... > E I want to remove the following files: > E /tmp/tmpv_0ui709/foo/newsfragments/123.feature > E Is it okay if I remove those files? [Y/n]:Aborted! > ----------------------------- Captured stderr call > ----------------------------- > fatal: not a git repository (or any of the parent directories): .git > __________________ TestCli.test_default_start_string_markdown > __________________ > > self = <towncrier.test.test_build.TestCli > testMethod=test_default_start_string_markdown> > runner = <click.testing.CliRunner object at 0x7f1accfbaf10> > > @with_project( > config=""" > [tool.towncrier] > package = "foo" > filename = "NEWS.md" > """ > ) > def test_default_start_string_markdown(self, runner): > """ > The default start string is ``<!-- towncrier release notes start > -->`` for > Markdown. > """ > write("foo/newsfragments/123.feature", "Adds levitation") > write( > "NEWS.md", > contents=""" > a line > > another > > <!-- towncrier release notes start --> > > a footer! > """, > dedent=True, > ) > > result = runner.invoke(_main, ["--date", "01-01-2001"], > catch_exceptions=False) > > self.assertEqual(0, result.exit_code, result.output) > > ../../../src/towncrier/test/test_build.py:1377: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:444: in assertEqual > super().assertEqual(first, second, msg) > E twisted.trial.unittest.FailTest: 0 != 1 : Loading template... > E Finding news fragments... > E Rendering news fragments... > E Writing to newsfile... > E Staging newsfile... > E I want to remove the following files: > E /tmp/tmpz11xlquk/foo/newsfragments/123.feature > E Is it okay if I remove those files? [Y/n]:Aborted! > ----------------------------- Captured stderr call > ----------------------------- > fatal: not a git repository (or any of the parent directories): .git > _________________ TestCli.test_markdown_injected_after_header > __________________ > > self = <towncrier.test.test_build.TestCli > testMethod=test_markdown_injected_after_header> > runner = <click.testing.CliRunner object at 0x7f1acd001490> > > @with_project( > config=""" > [tool.towncrier] > package = "foo" > filename = "NEWS.md" > title_format = "### [{project_date}] CUSTOM RELEASE for {name} > version {version}" > template = "custom_template.md" > """ > ) > def test_markdown_injected_after_header(self, runner): > """ > Test that we can inject markdown after some fixed header > and have the injected markdown header levels set at the desired level. > This avoids a repeat of the regression introduced in > [#610](https://github.com/twisted/towncrier/pull/610), > which mistakenly assumed that starting the line with '# ' would work > in all use cases. > """ > write("foo/newsfragments/123.feature", "Adds levitation") > write( > "NEWS.md", > contents=""" > # Top title > > ## Section title > > Some text explaining something > > another line > > ## Release notes > > <!-- towncrier release notes start --> > > a footer! > """, > dedent=True, > ) > > default_template = read_pkg_resource("templates/default.md") > write( > "custom_template.md", > contents=default_template.replace( > "### {{ definitions", "#### {{ definitions" > ), > ) > > result = runner.invoke(_main, ["--date", "01-01-2001"], > catch_exceptions=False) > > with open("foo/newsfragments/123.feature", "w") as f: > f.write("Adds levitation") > > > self.assertEqual(0, result.exit_code, result.output) > > ../../../src/towncrier/test/test_build.py:1151: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:444: in assertEqual > super().assertEqual(first, second, msg) > E twisted.trial.unittest.FailTest: 0 != 1 : Loading template... > E Finding news fragments... > E Rendering news fragments... > E Writing to newsfile... > E Staging newsfile... > E I want to remove the following files: > E /tmp/tmpsepmd2ck/foo/newsfragments/123.feature > E Is it okay if I remove those files? [Y/n]:Aborted! > ----------------------------- Captured stderr call > ----------------------------- > fatal: not a git repository (or any of the parent directories): .git > _____________________ TestCli.test_markdown_no_name_title > ______________________ > > self = <towncrier.test.test_build.TestCli > testMethod=test_markdown_no_name_title> > runner = <click.testing.CliRunner object at 0x7f1acd0025d0> > > @with_project( > config=""" > [tool.towncrier] > name = "" > directory = "changes" > filename = "NEWS.md" > version = "1.2.3" > """ > ) > def test_markdown_no_name_title(self, runner): > """ > When configured with an empty `name` option, > the default template used for Markdown > renders the title of the release note with just > the version number and release date. > """ > write("changes/123.feature", "Adds levitation") > write( > "NEWS.md", > contents=""" > A line > > <!-- towncrier release notes start --> > """, > dedent=True, > ) > > result = runner.invoke(_main, ["--date", "01-01-2001"], > catch_exceptions=False) > > self.assertEqual(0, result.exit_code, result.output) > > ../../../src/towncrier/test/test_build.py:1429: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:444: in assertEqual > super().assertEqual(first, second, msg) > E twisted.trial.unittest.FailTest: 0 != 1 : Loading template... > E Finding news fragments... > E Rendering news fragments... > E Writing to newsfile... > E Staging newsfile... > E I want to remove the following files: > E /tmp/tmpbjxorpar/changes/123.feature > E Is it okay if I remove those files? [Y/n]:Aborted! > ----------------------------- Captured stderr call > ----------------------------- > fatal: not a git repository (or any of the parent directories): .git > _________________ TestChecker.test_none_stdout_encoding_works > __________________ > > self = <towncrier.test.test_check.TestChecker > testMethod=test_none_stdout_encoding_works> > > def test_none_stdout_encoding_works(self): > """ > No failure when output is piped causing None encoding for stdout. > """ > runner = CliRunner() > > with runner.isolated_filesystem(): > create_project("pyproject.toml", main_branch="master") > > fragment_path = "foo/newsfragments/1234.feature" > with open(fragment_path, "w") as f: > f.write("Adds gravity back") > > call(["git", "add", fragment_path]) > call(["git", "commit", "-m", "add a newsfragment"]) > > > runner = CliRunner(mix_stderr=False) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ > E TypeError: CliRunner.__init__() got an unexpected keyword > argument 'mix_stderr' > > ../../../src/towncrier/test/test_check.py:260: TypeError > ----------------------------- Captured stdout call > ----------------------------- > Initialized empty Git repository in /tmp/tmpqjnl_na9/.git/ > [master (root-commit) 9f6b664] Initial Commit > 3 files changed, 4 insertions(+) > create mode 100644 foo/__init__.py > create mode 100644 foo/newsfragments/123.feature > create mode 100644 pyproject.toml > [otherbranch ee31566] add a newsfragment > 1 file changed, 1 insertion(+) > create mode 100644 foo/newsfragments/1234.feature > ----------------------------- Captured stderr call > ----------------------------- > Switched to a new branch 'otherbranch' > =========================== short test summary info > ============================ > FAILED > ../../../src/towncrier/test/test_build.py::TestCli::test_default_start_string > FAILED > ../../../src/towncrier/test/test_build.py::TestCli::test_default_start_string_markdown > FAILED > ../../../src/towncrier/test/test_build.py::TestCli::test_markdown_injected_after_header > FAILED > ../../../src/towncrier/test/test_build.py::TestCli::test_markdown_no_name_title > FAILED > ../../../src/towncrier/test/test_check.py::TestChecker::test_none_stdout_encoding_works > ======================== 5 failed, 143 passed in 1.57s > ========================= > E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd > /build/reproducible-path/towncrier-24.8.0/.pybuild/cpython3_3.13/build; > python3.13 -m pytest "{dir}"/src/ > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 > --parallel=8 returned exit code 13 The full build log is available at https://people.debian.org/~cipriano/custom-mass-rebuild/python3-click-8.3.3/towncrier_24.8.0-2.log
signature.asc
Description: PGP signature

