Skip to content

docs: add new ADR identifying a new TUI crate for setup command - #3631

Open
turmelclem wants to merge 2 commits into
mainfrom
ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command
Open

turmelclem wants to merge 2 commits into
mainfrom
ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command

Conversation

@turmelclem

@turmelclem turmelclem commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Content

Introduce a new ADR file that identify a TUI crate that will be used for the one command setup signer

Pre-submit checklist

  • Branch
    • Tests are provided (if possible)
    • Crates versions are updated (if relevant)
    • CHANGELOG file is updated (if relevant)
    • Commit sequence broadly makes sense
    • Key commits have useful messages
  • PR
    • All check jobs of the CI have succeeded
    • Self-reviewed the diff
    • Useful pull request description
    • Reviewer requested
  • Documentation
    • Update README file (if relevant)
    • Update documentation website (if relevant)
    • Add dev blog post (if relevant)
    • Add ADR blog post or Dev ADR entry (if relevant)
    • No new TODOs introduced

Issue(s)

this PR relates to #3618

@turmelclem turmelclem self-assigned this Oct 15, 2026
@turmelclem turmelclem added the documentation 📖 Documentation to add/update label Oct 15, 2026
@turmelclem
turmelclem force-pushed the ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command branch 2 times, most recently from ad7ad61 to dc20463 Compare October 15, 2026 09:05
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Test Results

     5 files  ±0     226 suites  ±0   1h 3m 5s ⏱️ + 15m 50s
 4 011 tests ±0   4 011 ✅ ±0  0 💤 ±0  0 ❌ ±0 
12 674 runs  ±0  12 674 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 9580147. ± Comparison against base commit e85df3d.

♻️ This comment has been updated with latest results.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The ADR lacks required comparison evidence and contains a filename typo.

2 open findings
What changed in this PR

Adds ADR 014 documenting the selection of Ratatui with Crossterm for the signer setup TUI.

Changes:

  • Defines TUI requirements and compares candidate crates.
  • Records the selected implementation and its consequences.
File Summary
docs/​website/​adr/​014-indentify-a-TUI-crate-for-setup-command.md Adds the TUI selection ADR; requires filename correction and missing evaluation evidence.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md Outdated
Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md

@jpraynaud jpraynaud left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md
Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md
Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md
@turmelclem
turmelclem force-pushed the ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command branch 2 times, most recently from 0a0c6cf to 63224ef Compare October 15, 2026 13:02
@turmelclem
turmelclem force-pushed the ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command branch from 63224ef to 6941deb Compare October 15, 2026 13:03
@turmelclem
turmelclem deployed to testing-2-preview October 15, 2026 13:22 — with GitHub Actions Active
@turmelclem
turmelclem deployed to testing-preview October 15, 2026 13:22 — with GitHub Actions Active

@Alenar Alenar left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but I feel that this ADR is quite lacking for a decision making:

  • only one table to compare the crates
  • no code sample to compare the crates
  • I think a focus on easy of use / implementation complexity is missing
    Anyhow I think that Ratatui would have won even with all of those given it provide much more features.

@turmelclem
turmelclem force-pushed the ctl/3618-ADR-to-identify-a-TUI-crate-for-setup-command branch from 7ca5e21 to 9580147 Compare October 16, 2026 14:25
@turmelclem
turmelclem deployed to testing-2-preview October 16, 2026 14:43 — with GitHub Actions Active
@turmelclem
turmelclem deployed to testing-preview October 16, 2026 14:43 — with GitHub Actions Active
Comment thread docs/website/adr/014-identify-a-TUI-crate-for-setup-command.md
---
slug: 14
title: |
14. Choosing a TUI crate for setup command

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: The title and the filename disagree ("Choosing" vs "identify"). All other ADR filenames are lowercase, so the file could be renamed 014-choose-a-tui-crate-for-signer-setup-command.md.

Suggested change
14. Choosing a TUI crate for setup command
14. Choose a TUI crate for the signer setup command

14. Choosing a TUI crate for setup command
authors:
- name: Mithril Team
tags: [Proposed]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: All the existing ADRs are merged as Accepted or Superseded. Since this PR is approved, should the tag and the Status section switch to Accepted before merge? Also, the second commit Update ADR 14 with more criteria... does not follow the commit convention, so it could be squashed into the first one.


## Context

With the goal of increasing Mithril adoption, we want to simplify the installation of the Mithril Signer for SPOs.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Use lowercase "signer" consistently, as in the next line.

Suggested change
With the goal of increasing Mithril adoption, we want to simplify the installation of the Mithril Signer for SPOs.
With the goal of increasing Mithril adoption, we want to simplify the installation of the Mithril signer for SPOs.


#### Types of inputs

Two interaction modes were considered:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: The Q&A mode requirements are listed but the decision only keeps the grid edit mode. Could you add a sentence explaining why the Q&A mode was discarded? Otherwise these requirements read as unmet.

- Downloads¹: 59 106 231
- Size²: 70.7 + 18.4 KiB
- Dependencies³: 207 (including color-eyre)
- Testable: ✅ [UI output unit test](https://ratatui.rs/tutorials/counter-app/basic-app/#testing-the-ui-output)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 65
suggestion: The decision mentions TestBackend, so it would be clearer to link its documentation here too.

Suggested change
- Testable: ✅ [UI output unit test](https://ratatui.rs/tutorials/counter-app/basic-app/#testing-the-ui-output)
- Testable: ✅ [UI output unit test](https://ratatui.rs/tutorials/counter-app/basic-app/#testing-the-ui-output) with [`TestBackend`](https://docs.rs/ratatui/latest/ratatui/backend/struct.TestBackend.html)

- Dependencies³: 207 (including color-eyre)
- Testable: ✅ [UI output unit test](https://ratatui.rs/tutorials/counter-app/basic-app/#testing-the-ui-output)
- Q&A mode: ✅
- Grid edit mode: ✅ Offer widgets Row and Cell structure to design tables

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Grammar.

Suggested change
- Grid edit mode: ✅ Offer widgets Row and Cell structure to design tables
- Grid edit mode: ✅ offers `Row` and `Cell` widgets to design tables

- Q&A mode: ✅
- Grid edit mode: ✅ Offer widgets Row and Cell structure to design tables
- Mouse support: ✅
- Ease of development : **Medium**. Lot of things are possible with Ratatui so it offer a lot of options and can bring complexity. ([Q&A Prototype](https://github.com/IntersectMBO/mithril/blob/ctl/3618-identify-a-TUI-crate-for-setup-command/ratatui-question-answer/src/main.rs), [Grid Edit Prototype](https://github.com/IntersectMBO/mithril/blob/ctl/3618-identify-a-TUI-crate-for-setup-command/ratatui-grid-edit-mode/src/main.rs))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: The prototype links point to the ctl/3618-identify-a-TUI-crate-for-setup-command branch, so they will break once the branch is deleted.


## Consequences

- The dependency footprint is significantly larger (~200 crates vs ~10-20 for prompt-based crates).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: The numbers do not match the comparison above. Please update them once the Ratatui count is measured without color-eyre.


- The dependency footprint is significantly larger (~200 crates vs ~10-20 for prompt-based crates).
- Input widgets (text, integer validation, defaults, selection) must be implemented or pulled from companion crates (e.g. `tui-input`).
- UI rendering can be covered by unit tests using Ratatui's `TestBackend`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Add the consequence of the separate crate decision.

Suggested change
- UI rendering can be covered by unit tests using Ratatui's `TestBackend`.
- UI rendering can be covered by unit tests using Ratatui's `TestBackend`.
- A new binary must be built, packaged and distributed for the setup command.

This branch was successfully deployed

2 active deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation 📖 Documentation to add/update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants