From: Jiri Slaby <jirislaby@kernel.org>
To: Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
users@kernel.org, tools@kernel.org
Subject: Re: b4 v0.15.0 released
Date: Tue, 24 Mar 2026 08:26:15 +0100 [thread overview]
Message-ID: <2c35a708-0ff6-4fe0-8974-2e786dadff6e@kernel.org> (raw)
In-Reply-To: <20260320-portable-jaybird-of-focus-41fd66@lemur>
On 20. 03. 26, 21:47, Konstantin Ryabitsev wrote:
> Hi, all:
>
> B4 v0.15.0 is now available! Install or upgrade using your usual mechanism.
Hi,
the TUI tests fail for me (while packaging for openSUSE):
> FAILED src/tests/test_tui_tracking.py::TestTrackingAppStartup::test_empty_database - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingAppStartup::test_series_listed - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingAppStartup::test_title_shows_identifier_and_count - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingAppStartup::test_series_sorted_by_added_at - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingNavigation::test_jk_navigation - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingNavigation::test_help_opens_and_closes - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingLimit::test_limit_filters_by_subject - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingLimit::test_limit_filters_by_sender - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingLimit::test_clear_limit - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingLimit::test_limit_title_shows_count - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingLimitPrefixes::test_limit_by_status - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingStatusGroups::test_actionable_before_non_actionable - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingStatusGroups::test_archived_not_shown - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingFocusChangeId::test_focus_on_specific_series - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingQuit::test_q_exits - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingActionMenu::test_action_menu_for_new_series - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingActionMenu::test_action_menu_for_snoozed - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingActionMenu::test_enter_on_new_opens_action_menu - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingUpgradeNewSeries::test_action_menu_shows_upgrade_for_new_with_newer - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingUpgradeNewSeries::test_action_menu_no_upgrade_without_newer - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingUpgradeNewSeries::test_upgrade_switches_revision - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingSnooze::test_snooze_new_series - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingSnooze::test_snooze_cancel - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingAbandon::test_abandon_new_series - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingAbandon::test_abandon_cancel - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingDetailPanel::test_detail_panel_shows_on_highlight - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingDetailPanel::test_detail_panel_hides_on_escape - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingDetailPanel::test_detail_panel_updates_on_navigation - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTrackingSnoozeRemembersChoice::test_snooze_remembers_last_input - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestSeriesLifecycle::test_new_directly_to_snoozed - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestSeriesLifecycle::test_gone_series_actions - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestTargetBranch::test_target_branch_in_details - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestUpdateRevisionWorkflow::test_prepared_none_is_noop - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestUpdateRevisionWorkflow::test_prepared_pushes_base_selection - RuntimeError: Not inside a git repository
> FAILED src/tests/test_tui_tracking.py::TestUpdateRevisionWorkflow::test_base_selected_none_cancels - RuntimeError: Not inside a git repository
I use the released .tar, so there is indeed no .git. Doing:
--- a/src/b4/ty.py 2026-03-24 07:24:14.713405924 +0100
+++ b/src/b4/ty.py 2026-03-24 08:19:47.936368274 +0100
@@ -682,7 +681,7 @@
"""
gitdir = b4.git_get_common_dir()
if not gitdir:
- raise RuntimeError('Not inside a git repository')
+ gitdir = '.'
qdir = os.path.join(gitdir, 'b4-review', 'queue')
if dryrun:
qdir = os.path.join(qdir, 'dryrun')
makes this work -- whether this is correct, I don't know.
Then, there is one more failure:
> ____________________________________________________ TestTrackingAbandon.test_abandon_new_series _____________________________________________________
>
> self = <tests.test_tui_tracking.TestTrackingAbandon object at 0x7f2f1db36850>
> tmp_path = PosixPath('/tmp/pytest-of-abuild/pytest-18/test_abandon_new_series0')
>
> @pytest.mark.asyncio
> async def test_abandon_new_series(self, tmp_path: pathlib.Path) -> None:
> """Abandoning a new series should remove it from the DB."""
> identifier = 'test-abandon'
> _seed_db(identifier, [
> {
> 'change_id': 'keep-1',
> 'subject': '[PATCH] keep me',
> 'sent_at': '2026-03-10T11:00:00+00:00',
> 'message_id': 'keep@ex.com',
> },
> {
> 'change_id': 'abandon-1',
> 'subject': '[PATCH] abandon me',
> 'sent_at': '2026-03-10T12:00:00+00:00',
> 'message_id': 'abandon@ex.com',
> },
> ])
>
> app = TrackingApp(identifier)
> async with app.run_test(size=(120, 30)) as pilot:
> await pilot.pause()
> # First series is 'abandon-1' (last inserted, added_at desc)
> assert app._selected_series is not None
> assert app._selected_series['change_id'] == 'abandon-1'
>
> await pilot.press('a')
> await pilot.pause()
> assert isinstance(app.screen, ActionScreen)
>
> # Select 'abandon' from the menu
> await pilot.press('A') # shortcut for abandon
> await pilot.pause()
>
> # Should show confirm dialog
> assert isinstance(app.screen, ConfirmScreen)
>
> await pilot.press('y')
> await pilot.pause()
>
> # Verify the abandoned series is gone from DB
> conn = tracking.get_db(identifier)
> cursor = conn.execute('SELECT change_id FROM series')
> remaining = [row[0] for row in cursor.fetchall()]
> conn.close()
> assert 'keep-1' in remaining
>> assert 'abandon-1' not in remaining
> E AssertionError: assert 'abandon-1' not in ['abandon-1', 'keep-1']
>
> src/tests/test_tui_tracking.py:1076: AssertionError
> ----------------------------------------------------------------- Captured log setup -----------------------------------------------------------------
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector
> ----------------------------------------------------------------- Captured log call ------------------------------------------------------------------
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --git-common-dir
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse b4/review/abandon-1
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse b4/review/keep-1
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --git-common-dir
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse b4/review/abandon-1
> DEBUG b4:__init__.py:3047 Running git --no-pager rev-parse --show-toplevel
> ============================================================== short test summary info ===============================================================
> FAILED src/tests/test_tui_tracking.py::TestTrackingAbandon::test_abandon_new_series - AssertionError: assert 'abandon-1' not in ['abandon-1', 'keep-1']
thanks,
--
js
suse labs
next prev parent reply other threads:[~2026-03-24 7:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-20 20:47 b4 v0.15.0 released Konstantin Ryabitsev
2026-03-20 21:11 ` Luck, Tony
2026-03-21 1:55 ` Konstantin Ryabitsev
2026-03-24 7:26 ` Jiri Slaby [this message]
2026-03-24 12:49 ` Konstantin Ryabitsev
2026-03-24 14:19 ` Konstantin Ryabitsev
2026-03-25 10:06 ` Jiri Slaby
2026-03-24 12:57 ` B4 Bugbot
[not found] ` <CA+JHD93MSC=GZMscAu8-uMroXYrHzn-w8NgHVSLyjNLJ9Wa=OA@mail.gmail.com>
2026-03-24 18:13 ` Konstantin Ryabitsev
2026-03-25 10:19 ` Borislav Petkov
2026-03-25 12:50 ` Theodore Tso
2026-03-25 13:02 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2c35a708-0ff6-4fe0-8974-2e786dadff6e@kernel.org \
--to=jirislaby@kernel.org \
--cc=konstantin@linuxfoundation.org \
--cc=tools@kernel.org \
--cc=users@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox