Re: b4 review available in master

Conor Dooley
2026-02-28T16:49:01Z

[-- Attachment #1: Type: text/plain, Size: 12145 bytes --]

On Sat, Feb 28, 2026 at 11:45:58AM -0500, Konstantin Ryabitsev wrote:
> On Sat, Feb 28, 2026 at 04:36:07PM +0000, Conor Dooley wrote:
> > Also, I attempted to open patchwork while my b4.pw-project was set to
> > "devicetree" and got an error:
> > MarkupError: Expected markup style value (found '1/1] dt-bindings: net: can: nxp,sja1000: add reference to fsl,imx-weim-peripherals.yaml').
> > There's some massive splat I can send you if this does not reproduce.
>
> Bah, the problem is that textual treats [] as style markup, so there's a bunch
> of places where we have to escape that. I expect this will come up routinely
> as more places requiring escaping are found.
>
> I put a fix into latest master for this particular one. Thanks!

Seems like you got half the problem? Certainly predictive on the "more
places though! ;)

$ git checkout korg/master
Previous HEAD position was a00f452 review: drop Binding.Group to support older textual
HEAD is now at a21b8a4 review: escape markup in title bar subject
$ popd
/stuff/linux-dt /stuff/linux
$ /stuff/b4/b4.sh review tui -i linux-dt
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ /stuff/b4/src/b4/review_tui/_review_app.py:219 in on_mount │
│ │
│ 216 │ ╭─────────────────────────────────────────── locals ────────────────────────────────────────────╮ │
│ 217 │ def on_mount(self) -> None: │ self = ReviewApp(title='b4 review', classes={'-dark-mode'}, pseudo_classes={'dark', 'focus'}) │ │
│ 218 │ │ self._refresh_newer_warning() ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ❱ 219 │ │ self._refresh_title_bar() │
│ 220 │ │ self._populate_patch_list() │
│ 221 │ │ self._show_content(self._selected_idx) │
│ 222 │
│ │
│ /stuff/b4/src/b4/review_tui/_review_app.py:235 in _refresh_title_bar │
│ │
│ 232 │ │ else: ╭───────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │
│ 233 │ │ │ label = f' \u270e {subject}' │ bar = Static(id='title-bar') │ │
│ 234 │ │ │ bar.styles.background = self.get_css_variables()['primary-darken-2'] │ label = ' ✎ [PATCH v5 1/8] iommu/riscv: Enable IOMMU DMA mapping support' │ │
│ ❱ 235 │ │ bar.update(label) │ self = ReviewApp(title='b4 review', classes={'-dark-mode'}, pseudo_classes={'dark', 'focus'}) │ │
│ 236 │ │ subject = '[PATCH v5 1/8] iommu/riscv: Enable IOMMU DMA mapping support' │ │
│ 237 │ def _refresh_newer_warning(self) -> None: ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ 238 │ │ """Show or hide the newer-version warning bar based on tracking data.""" │
│ │
│ /usr/lib/python3/dist-packages/textual/widgets/_static.py:106 in update │
│ │
│ 103 │ │ """ ╭────────────────────────────────── locals ───────────────────────────────────╮ │
│ 104 │ │ │ content = ' ✎ [PATCH v5 1/8] iommu/riscv: Enable IOMMU DMA mapping support' │ │
│ 105 │ │ self._content = content │ self = Static(id='title-bar') │ │
│ ❱ 106 │ │ self._visual = visualize(self, content, markup=self._render_markup) ╰─────────────────────────────────────────────────────────────────────────────╯ │
│ 107 │ │ self.refresh(layout=True) │
│ 108 │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
MarkupError: Expected markup style value (found '1/8] iommu/riscv: Enable IOMMU DMA mapping support').

NOTE: 1 of 2 errors shown. Run with textual run --dev to see all errors.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]