public inbox for tools@linux.kernel.org
 help / color / mirror / Atom feed
* b4 v0.15.0 released
@ 2026-03-20 20:47 Konstantin Ryabitsev
  2026-03-20 21:11 ` Luck, Tony
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Konstantin Ryabitsev @ 2026-03-20 20:47 UTC (permalink / raw)
  To: users, tools

Hi, all:

B4 v0.15.0 is now available! Install or upgrade using your usual mechanism.

We're recommending the use of pipx now over pip, so if you want to start from
scratch, you can use:

    pipx install b4
    # or, if you want the new shiny review tui stuff
    pipx install b4[tui]

Full release notes: https://b4.docs.kernel.org/en/latest/releases.html
Getting started guide with screencasts: https://b4.docs.kernel.org/en/latest/reviewer/getting-started.html

# b4 review — TUI-based patch review workflow (technology preview)

The headline feature in this release is "b4 review", a terminal-based
workflow for maintainers who receive, review, and accept patches from
mailing lists. It ships as a technology preview (alpha): commands,
keybindings, configuration options, and on-disk formats may change in
incompatible ways between releases.

The TUI requires the optional "tui" dependency group:

    pipx install b4[tui]

The workflow is built around a lightweight SQLite tracking database and
per-series review branches. It comprises three cooperating TUI apps:

Tracking TUI
  Browse and manage tracked series with status indicators, take
  (apply) series using merge, linear, or cherry-pick strategies,
  compare revisions with range-diff, send thank-you messages, and
  archive completed series. The app groups series by lifecycle state
  (active, new, waiting, gone) and sorts by most-recent activity.

Review TUI
  Split-pane interface with a patch list and scrollable diff viewer.
  Add inline comments and code-review trailers, preview outgoing
  emails, invoke an external AI agent for automated review assistance,
  and send review replies — all without leaving the terminal.

Patchwork TUI
  Browse outstanding series from a Patchwork server, set state and
  archived flags, and track series into the local database for review.

Highlights:

- Series tracking and lifecycle management — track series from the
  CLI (b4 review track <msgid>), from your mail client, or from
  Patchwork. Series progress through new → reviewing → replied →
  accepted → thanked states.
- Revision discovery and upgrades — b4 automatically discovers older
  and newer revisions of a tracked series using change-id and
  in-reply-to chains. Upgrading to a newer revision preserves your
  review state and prior context.
- Inline commenting — press "r" in the review view to open $EDITOR
  with the full diff quoted. Write your comments below the relevant
  lines and b4 will format them as proper email replies. The diff
  view shows community follow-up comments from the mailing list
  alongside your own.
- AI agent integration — optionally invoke an external AI agent
  (Claude Code, Gemini CLI, OpenAI Codex CLI, or GitHub Copilot CLI)
  to produce a first-pass review. Agent findings remain private to
  you; you decide what, if anything, to include in your reply.
- Per-patch state machine — mark individual patches as done, skip, or
  draft to track your progress through large series. B4 automatically
  excludes skipped patches from cherry-pick selection and outgoing
  emails.
- Three take strategies — merge (creates a merge commit from the
  cover letter), linear (git am), or cherry-pick (select individual
  patches). B4 adds per-commit Signed-off-by and Link trailers on
  request.
- Snooze — defer a series until a specific date, duration, or git
  tag. B4 skips snoozed series during bulk updates and automatically
  wakes them when the snooze expires.
- Cross-machine synchronisation — push b4/review/* branches to a
  private remote and rescan on another machine to rebuild the tracking
  database from branch metadata.
- Mutt-style thread viewer — press "e" to browse the full email thread
  with tree art, attestation status display, and reply support. B4
  tracks per-message flags (seen, flagged, answered) across sessions.
- Worktree support — enrolled repositories work correctly from
  worktrees; a configurable review-target-branch sets the default
  branch for take operations.
- Patchwork state synchronisation — when you have write access to a
  Patchwork instance, b4 automatically updates the remote series state
  as you progress through the review lifecycle.
- Prior review context — when upgrading to a new revision, b4 carries
  forward your previous review comments and notes so you can see what
  you said last time.
- Quick-reply — reply to follow-up messages directly from the review
  TUI or thread viewer without switching to your email client.

# b4 dig — trace applied commits back to mailing list submissions

The new "b4 dig" command searches for the original mailing list
submission of a commit that has already been applied to a git tree. It
matches by patch-id, author, and subject to locate the original thread
on lore.kernel.org.

    b4 dig <commitish>
    b4 dig --all-series HEAD~20..HEAD
    b4 dig --who --save-mbox <commitish>

# b4 shazam — three-way merge and conflict resolution

"b4 shazam -H" now performs a three-way merge when applying patches,
which significantly improves the success rate for series that do not
apply cleanly with a simple "git am". When conflicts do occur, the new
--resolve flag drops you into an interactive conflict resolution session
instead of aborting:

    b4 shazam -H --resolve <msgid>

# b4 prep — pre/post history-rewrite hooks

Two new configuration keys let you run commands before and after b4
rewrites history on a prep branch (for example, when updating the cover
letter or applying trailers via git-filter-repo):

    [b4]
        prep-pre-rewrite-hook = stg commit --all
        prep-post-rewrite-hook = stg repair

A non-zero exit from the pre-hook aborts the operation, which is useful
for tools like StGit that need to commit their internal state first.

Other notable changes
---------------------

- XOAUTH2 and bearer-token SMTP authentication
- Presubject support (b4.send-presubject / --set-presubject)
- Send-email alias expansion (sendemail.aliasesfile)
- Codespell integration in b4 prep --check
- Shallow same-thread support (b4.send-same-thread = shallow)
- Force cover letter for single-patch series (--force-cover-letter)
- Default Link domain changed to patch.msgid.link
- Full-index binary diffs (--full-index --binary)
- Clean multiple prep branches at once
- Thank-you self-copy (b4 ty --me-too)
- Range-diff arguments (--range-diff-opts)
- Trailer provenance display in b4 trailers

Thanks
------

Thanks to the following people for reporting bugs, suggesting features,
reviewing patches, testing, and contributing code, and especially to Mark
Brown for valiantly trying the very early, rough versions of b4 review
workflows.

Alexey Minnekhanov, Andrew Cooper, Andy Shevchenko, Christian Heusel,
Conor Dooley, Dave Marquardt, Geert Uytterhoeven, Jonathan Corbet,
Junio C Hamano, Juri Lelli, Kevin Hilman, Krzysztof Kozlowski,
Lee Jones, Linus Torvalds, Louis Chauvet, Luca Ceresoli,
Manos Pitsidianakis, Marc Kleine-Budde, Mark Brown, Matthieu Baerts,
Maxime Ripard, Michael S. Tsirkin, Miguel Ojeda, Nathan Chancellor,
Panagiotis Vasilopoulos, Ricardo Ribalda, Rob Herring,
Tamir Duberstein, Toke Høiland-Jørgensen.

Best regards,
-- 
KR

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-03-25 13:02 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox