Package: src:todoman Version: 4.6.0-1 Severity: serious Tags: ftbfs forky sid
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/202601/ 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:todoman, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' rm -f /<<PKGBUILDDIR>>/debian/hypothesis make[1]: Leaving directory '/<<PKGBUILDDIR>>' 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:139: Building wheel for python3.14 with "build" module [... snipped ...] tests/test_config.py::test_xdg_existant [32mPASSED[0m[33m [ 42%][0m tests/test_config.py::test_sane_config [32mPASSED[0m[33m [ 43%][0m tests/test_config.py::test_invalid_color [32mPASSED[0m[33m [ 43%][0m tests/test_config.py::test_invalid_color_arg [32mPASSED[0m[33m [ 44%][0m tests/test_config.py::test_missing_path [32mPASSED[0m[33m [ 44%][0m tests/test_config.py::test_extra_entry [33mXFAIL[0m (Not implemented)[33m [ 45%][0m tests/test_config.py::test_extra_section [33mXFAIL[0m (Not implemented)[33m [ 45%][0m tests/test_config.py::test_missing_cache_dir [32mPASSED[0m[33m [ 46%][0m tests/test_config.py::test_date_field_in_time_format [32mPASSED[0m[33m [ 46%][0m tests/test_config.py::test_date_field_in_time [32mPASSED[0m[33m [ 47%][0m tests/test_config.py::test_colour_validation_auto [32mPASSED[0m[33m [ 47%][0m tests/test_config.py::test_colour_validation_always [32mPASSED[0m[33m [ 48%][0m tests/test_config.py::test_colour_validation_invalid [32mPASSED[0m[33m [ 48%][0m tests/test_filtering.py::test_priority [32mPASSED[0m[33m [ 49%][0m tests/test_filtering.py::test_location [32mPASSED[0m[33m [ 50%][0m tests/test_filtering.py::test_category [32mPASSED[0m[33m [ 50%][0m tests/test_filtering.py::test_grep [32mPASSED[0m[33m [ 51%][0m tests/test_filtering.py::test_filtering_lists [32mPASSED[0m[33m [ 51%][0m tests/test_filtering.py::test_due_aware [32mPASSED[0m[33m [ 52%][0m tests/test_filtering.py::test_due_naive [32mPASSED[0m[33m [ 52%][0m tests/test_filtering.py::test_filtering_start [32mPASSED[0m[33m [ 53%][0m tests/test_filtering.py::test_statuses [32mPASSED[0m[33m [ 53%][0m tests/test_formatter.py::test_humanized_datetime[CET-interval0] [32mPASSED[0m[33m [ 54%][0m tests/test_formatter.py::test_humanized_datetime[CET-interval1] [32mPASSED[0m[33m [ 54%][0m tests/test_formatter.py::test_humanized_datetime[HST-interval0] [32mPASSED[0m[33m [ 55%][0m tests/test_formatter.py::test_humanized_datetime[HST-interval1] [32mPASSED[0m[33m [ 55%][0m tests/test_formatter.py::test_humanized_date[CET-interval0] [32mPASSED[0m[33m [ 56%][0m tests/test_formatter.py::test_humanized_date[CET-interval1] [32mPASSED[0m[33m [ 56%][0m tests/test_formatter.py::test_humanized_date[HST-interval0] [32mPASSED[0m[33m [ 57%][0m tests/test_formatter.py::test_humanized_date[HST-interval1] [32mPASSED[0m[33m [ 57%][0m tests/test_formatter.py::test_format_priority [32mPASSED[0m[33m [ 58%][0m tests/test_formatter.py::test_format_priority_compact [32mPASSED[0m[33m [ 58%][0m tests/test_formatter.py::test_format_date [32mPASSED[0m[33m [ 59%][0m tests/test_formatter.py::test_format_datetime [32mPASSED[0m[33m [ 59%][0m tests/test_formatter.py::test_detailed_format [32mPASSED[0m[33m [ 60%][0m tests/test_formatter.py::test_parse_time [32mPASSED[0m[33m [ 60%][0m tests/test_formatter.py::test_parse_datetime [32mPASSED[0m[33m [ 61%][0m tests/test_formatter.py::test_humanized_parse_datetime [32mPASSED[0m[33m [ 61%][0m tests/test_formatter.py::test_simple_action [32mPASSED[0m[33m [ 62%][0m tests/test_formatter.py::test_formatting_parsing_consitency [32mPASSED[0m[33m [ 62%][0m tests/test_formatter.py::test_rgb_to_ansi [32mPASSED[0m[33m [ 63%][0m tests/test_formatter.py::test_format_multiple_with_list [32mPASSED[0m[33m [ 63%][0m tests/test_formatter.py::test_format_multiple_without_list [32mPASSED[0m[33m [ 64%][0m tests/test_main.py::test_main [32mPASSED[0m[33m [ 64%][0m tests/test_model.py::test_querying [32mPASSED[0m[33m [ 65%][0m tests/test_model.py::test_retain_tz [32mPASSED[0m[33m [ 65%][0m tests/test_model.py::test_due_date [32mPASSED[0m[33m [ 66%][0m tests/test_model.py::test_change_paths [32mPASSED[0m[33m [ 67%][0m tests/test_model.py::test_list_displayname [32mPASSED[0m[33m [ 67%][0m tests/test_model.py::test_list_colour [32mPASSED[0m[33m [ 68%][0m tests/test_model.py::test_list_colour_cache_invalidation [32mPASSED[0m[33m [ 68%][0m tests/test_model.py::test_list_no_colour [32mPASSED[0m[33m [ 69%][0m tests/test_model.py::test_database_priority_sorting [32mPASSED[0m[33m [ 69%][0m tests/test_model.py::test_retain_unknown_fields [32mPASSED[0m[33m [ 70%][0m tests/test_model.py::test_category_integrity [32mPASSED[0m[33m [ 70%][0m tests/test_model.py::test_category_deletes_on_todo_delete [32mPASSED[0m[33m [ 71%][0m tests/test_model.py::test_todo_setters [32mPASSED[0m[33m [ 71%][0m tests/test_model.py::test_is_completed [32mPASSED[0m[33m [ 72%][0m tests/test_model.py::test_complete_recurring[True-tz0-20990315T020000Z] [32mPASSED[0m[33m [ 72%][0m tests/test_model.py::test_complete_recurring[True-tz0-20990315T020000] [33mSKIPPED[0m[33m [ 73%][0m tests/test_model.py::test_complete_recurring[True-None-20990315T020000Z] [33mSKIPPED[0m[33m [ 73%][0m tests/test_model.py::test_complete_recurring[True-None-20990315T020000] [32mPASSED[0m[33m [ 74%][0m tests/test_model.py::test_complete_recurring[False-tz0-20990315T020000Z] [32mPASSED[0m[33m [ 74%][0m tests/test_model.py::test_complete_recurring[False-tz0-20990315T020000] [33mSKIPPED[0m[33m [ 75%][0m tests/test_model.py::test_complete_recurring[False-None-20990315T020000Z] [33mSKIPPED[0m[33m [ 75%][0m tests/test_model.py::test_complete_recurring[False-None-20990315T020000] [32mPASSED[0m[33m [ 76%][0m tests/test_model.py::test_save_recurring_related [32mPASSED[0m[33m [ 76%][0m tests/test_model.py::test_save_recurring_related_with_date [32mPASSED[0m[33m [ 77%][0m tests/test_model.py::test_todo_filename_absolute_path [32mPASSED[0m[33m [ 77%][0m tests/test_model.py::test_list_equality [32mPASSED[0m[33m [ 78%][0m tests/test_model.py::test_clone [32mPASSED[0m[33m [ 78%][0m tests/test_model.py::test_todos_startable [32mPASSED[0m[33m [ 79%][0m tests/test_model.py::test_filename_uid_colision [32mPASSED[0m[33m [ 79%][0m tests/test_model.py::test_hide_cancelled [32mPASSED[0m[33m [ 80%][0m tests/test_model.py::test_illegal_start_suppression [32mPASSED[0m[33m [ 80%][0m tests/test_model.py::test_default_status [32mPASSED[0m[33m [ 81%][0m tests/test_model.py::test_nullify_field [32mPASSED[0m[33m [ 81%][0m tests/test_model.py::test_duplicate_list [32mPASSED[0m[33m [ 82%][0m tests/test_model.py::test_unreadable_ics [32mPASSED[0m[33m [ 82%][0m tests/test_model.py::test_deleting_todo_without_list_fails [32mPASSED[0m[33m [ 83%][0m tests/test_model.py::test_saving_todo_without_list_fails [32mPASSED[0m[33m [ 84%][0m tests/test_model.py::test_todo_path_without_list [32mPASSED[0m[33m [ 84%][0m tests/test_porcelain.py::test_list_all [32mPASSED[0m[33m [ 85%][0m tests/test_porcelain.py::test_list_start_date [32mPASSED[0m[33m [ 85%][0m tests/test_porcelain.py::test_list_due_date [32mPASSED[0m[33m [ 86%][0m tests/test_porcelain.py::test_list_nodue [32mPASSED[0m[33m [ 86%][0m tests/test_porcelain.py::test_list_priority [32mPASSED[0m[33m [ 87%][0m tests/test_porcelain.py::test_show [32mPASSED[0m[33m [ 87%][0m tests/test_porcelain.py::test_simple_action [32mPASSED[0m[33m [ 88%][0m tests/test_porcelain.py::test_format_datetime [32mPASSED[0m[33m [ 88%][0m tests/test_porcelain.py::test_parse_datetime [32mPASSED[0m[33m [ 89%][0m tests/test_porcelain.py::test_formatting_parsing_consitency [32mPASSED[0m[33m [ 89%][0m tests/test_ui.py::test_todo_editor_priority [32mPASSED[0m[33m [ 90%][0m tests/test_ui.py::test_todo_editor_list [31mFAILED[0m[31m [ 90%][0m tests/test_ui.py::test_todo_editor_summary [32mPASSED[0m[31m [ 91%][0m tests/test_ui.py::test_todo_editor_due [32mPASSED[0m[31m [ 91%][0m tests/test_ui.py::test_toggle_help [32mPASSED[0m[31m [ 92%][0m tests/test_ui.py::test_show_save_errors [32mPASSED[0m[31m [ 92%][0m tests/test_ui.py::test_save_completed[True-True] [32mPASSED[0m[31m [ 93%][0m tests/test_ui.py::test_save_completed[True-False] [32mPASSED[0m[31m [ 93%][0m tests/test_ui.py::test_save_completed[False-True] [32mPASSED[0m[31m [ 94%][0m tests/test_ui.py::test_save_completed[False-False] [32mPASSED[0m[31m [ 94%][0m tests/test_ui.py::test_ctrl_c_clears [33mSKIPPED[0m (See: https://github.co...)[31m [ 95%][0m tests/test_widgets.py::test_extended_edit_delete_word [32mPASSED[0m[31m [ 95%][0m tests/test_widgets.py::test_extended_edit_delete_sol [32mPASSED[0m[31m [ 96%][0m tests/test_widgets.py::test_extended_edit_delete_eol [32mPASSED[0m[31m [ 96%][0m tests/test_widgets.py::test_extended_edit_goto_sol [32mPASSED[0m[31m [ 97%][0m tests/test_widgets.py::test_extended_edit_goto_eol [32mPASSED[0m[31m [ 97%][0m tests/test_widgets.py::test_extended_edit_delete_next_char [32mPASSED[0m[31m [ 98%][0m tests/test_widgets.py::test_extended_edit_input [32mPASSED[0m[31m [ 98%][0m tests/test_widgets.py::test_extended_edit_editor [32mPASSED[0m[31m [ 99%][0m tests/test_widgets.py::test_priority_selector [32mPASSED[0m[31m [100%][0m =================================== FAILURES =================================== [31m[1m____________________________ test_todo_editor_list _____________________________[0m default_database = <todoman.model.Database object at 0x7fb957477470> todo_factory = <function todo_factory.<locals>.inner at 0x7fb956d294e0> default_formatter = <todoman.formatters.DefaultFormatter object at 0x7fb956d2e150> tmpdir = local('/tmp/pytest-of-sbuild/pytest-1/test_todo_editor_list0') [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_todo_editor_list[39;49;00m([90m[39;49;00m default_database: Database,[90m[39;49;00m todo_factory: Callable,[90m[39;49;00m default_formatter: Formatter,[90m[39;49;00m tmpdir: py.path.local,[90m[39;49;00m ) -> [94mNone[39;49;00m:[90m[39;49;00m tmpdir.mkdir([33m"[39;49;00m[33manother_list[39;49;00m[33m"[39;49;00m)[90m[39;49;00m [90m[39;49;00m default_database.paths = [[90m[39;49;00m [96mstr[39;49;00m(tmpdir.join([33m"[39;49;00m[33mdefault[39;49;00m[33m"[39;49;00m)),[90m[39;49;00m [96mstr[39;49;00m(tmpdir.join([33m"[39;49;00m[33manother_list[39;49;00m[33m"[39;49;00m)),[90m[39;49;00m ][90m[39;49;00m default_database.update_cache()[90m[39;49;00m [90m[39;49;00m todo = todo_factory()[90m[39;49;00m lists = [96mlist[39;49;00m(default_database.lists())[90m[39;49;00m [90m[39;49;00m editor = TodoEditor(todo, lists, default_formatter)[90m[39;49;00m default_list = [96mnext[39;49;00m([96mfilter[39;49;00m([94mlambda[39;49;00m x: x.label == [33m"[39;49;00m[33mdefault[39;49;00m[33m"[39;49;00m, editor.list_selector))[90m[39;49;00m another_list = [96mnext[39;49;00m([90m[39;49;00m [96mfilter[39;49;00m([94mlambda[39;49;00m x: x.label == [33m"[39;49;00m[33manother_list[39;49;00m[33m"[39;49;00m, editor.list_selector)[90m[39;49;00m )[90m[39;49;00m [90m[39;49;00m [94massert[39;49;00m editor.current_list == todo.list[90m[39;49;00m [94massert[39;49;00m default_list.label == todo.list.name[90m[39;49;00m [90m[39;49;00m another_list.set_state([94mTrue[39;49;00m)[90m[39;49;00m editor._save_inner()[90m[39;49;00m [90m[39;49;00m [94massert[39;49;00m editor.current_list == todo.list[90m[39;49;00m > [94massert[39;49;00m another_list.label == > todo.list.name[90m[39;49;00m ^^^^^^^^^^^^^^[90m[39;49;00m [1m[31mE AttributeError: 'bool' object has no attribute 'name'[0m [1m[31mtests/test_ui.py[0m:67: AttributeError [33m=============================== warnings summary ===============================[0m tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd return object.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment return object.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.web_display is moved to urwid.display.web if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.web_display is moved to urwid.display.web f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.web_display is moved to urwid.display.web if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.web_display is moved to urwid.display.web return object.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.monitored_list is moved to urwid.widget.monitored_list if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.monitored_list is moved to urwid.widget.monitored_list f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.monitored_list is moved to urwid.widget.monitored_list if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.monitored_list is moved to urwid.widget.monitored_list return object.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.listbox is moved to urwid.widget.listbox if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.listbox is moved to urwid.widget.listbox f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.listbox is moved to urwid.widget.listbox if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.listbox is moved to urwid.widget.listbox return object.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1020: DeprecationWarning: urwid.treetools is moved to urwid.widget.treetools if ismodule(module) and hasattr(module, '__file__'): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:1021: DeprecationWarning: urwid.treetools is moved to urwid.widget.treetools f = module.__file__ tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:922: DeprecationWarning: urwid.treetools is moved to urwid.widget.treetools if getattr(object, '__file__', None): tests/test_cli.py::test_two_events /usr/lib/python3.13/inspect.py:923: DeprecationWarning: urwid.treetools is moved to urwid.widget.treetools return object.__file__ -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ---------- coverage: platform linux, python 3.13.11-final-0 ---------- Name Stmts Miss Cover Missing -------------------------------------------------------- todoman/__init__.py 4 0 100% todoman/__main__.py 4 0 100% todoman/cli.py 358 11 97% 152, 399-405, 515-516, 551-552 todoman/configuration.py 77 3 96% 224, 235, 238 todoman/exceptions.py 20 0 100% todoman/formatters.py 213 1 99% 206 todoman/interactive.py 114 6 95% 10-14, 165-166 todoman/model.py 544 5 99% 270-272, 352, 367 todoman/version.py 9 0 100% todoman/widgets.py 94 0 100% -------------------------------------------------------- TOTAL 1437 26 98% [36m[1m=========================== short test summary info ============================[0m [31mFAILED[0m tests/test_ui.py::[1mtest_todo_editor_list[0m - AttributeError: 'bool' object has no attribute 'name' [31m====== [31m[1m1 failed[0m, [32m184 passed[0m, [33m6 skipped[0m, [33m3 xfailed[0m, [33m24 warnings[0m[31m in 11.23s[0m[31m =======[0m E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:24: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

