chore(core): bump ratatui to 0.30 and drop tui-term fork#35547
chore(core): bump ratatui to 0.30 and drop tui-term fork#35547FrozenPandaz merged 1 commit intonrwl:masterfrom
Conversation
👷 Deploy request for nx-docs pending review.Visit the deploys page to approve it
|
👷 Deploy request for nx-dev pending review.Visit the deploys page to approve it
|
|
View your CI Pipeline Execution ↗ for commit 7bb82af
☁️ Nx Cloud last updated this comment at |
Upstream tui-term 0.3.4 absorbed the dim-modifier patch that was the only
reason we maintained JamesHenry/tui-term, so swap the git dep for the
crates.io release with default features off and supply a small in-tree
adapter that implements tui_term::widget::{Screen, Cell} on top of
vt100_ctt::{Screen, Cell}. vt100-ctt stays as-is for the scrollback /
raw_output APIs we still rely on; turn off its default tui-term feature
to keep ratatui 0.29 out of the tree. tui-logger goes 0.17.2 -> 0.18.2
to track ratatui 0.30.
b03e606 to
7bb82af
Compare
There was a problem hiding this comment.
Important
At least one additional CI pipeline execution has run since the conclusion below was written and it may no longer be applicable.
Nx Cloud has identified a possible root cause for your failed CI:
We determined this failure is unrelated to the PR's changes, which are confined to Rust TUI dependencies and source code. The Gradle e2e test fails due to a file hash cache lock collision within the test infrastructure ("Cannot lock file hash cache as it has already been locked by this process"), a concurrency issue in the Gradle daemon that has no causal connection to bumping ratatui or replacing the tui-term fork. Re-running the e2e suite in isolation should resolve this.
No code changes were suggested for this issue.
You can trigger a rerun by pushing an empty commit:
git commit --allow-empty -m "chore: trigger rerun"
git push
🎓 Learn more about Self-Healing CI on nx.dev
Current Behavior
packages/nx/Cargo.tomlpinsratatui = "0.29"and consumestui-termfrom a personal git fork (JamesHenry/tui-term @ 88e3b614…). The fork carries two custom commits on top of upstreamtui-term: a vt100 → vt100-ctt swap, and aModifier::DIMmapping for dimmed PTY content.tui-loggeris also held back at0.17.2.The upstream
a-kenji/tui-termrepo has since merged the dim-modifier patch (PR #340) and shippedtui-term 0.3.4against the new modularratatui-core 0.1/ratatui-widgets 0.3crates that came withratatui 0.30. This means we no longer need to maintain a tui-term fork at all — the only remaining reason for it (the dim patch) is upstream.Expected Behavior
ratatuibumped to0.30.0.tui-termswapped from theJamesHenry/tui-termgit dep to crates.iotui-term = { version = "0.3.4", default-features = false }.tui-loggerbumped0.17.2→0.18.2(which targetsratatui ^0.30).vt100-cttstays as-is — we still need itsall_contents,all_contents_formatted,get_total_content_rows, andParser::get_raw_outputAPIs that aren't in upstreamvt100. Its defaulttui-termfeature is now disabled so it doesn't drag oldratatui 0.29/tui-term 0.2back into the dep tree.packages/nx/src/native/tui/vt100_adapter.rs(~95 lines) implementstui_term::widget::{Screen, Cell}forvt100_ctt::{Screen, Cell}via#[repr(transparent)]newtypes (orphan-rule workaround). The twoPseudoTerminal::new(&*screen)call sites interminal_pane.rsandinline_app.rsnow wrap the screen withVt100CttScreen::wrap(&screen).Stylizeimport dropped fromtasks_list.rs(ratatui 0.30 made the styling methods inherent).Resolved dep tree after the bump:
cargo checkandcargo clippy --frozen --all-targetsare clean (warnings only, all pre-existing on master).cargo test --libpasses 350/352; the two flaky failures are innative::watch::watcher::tests(filesystem-event timing tests, unrelated and inconsistent across runs).Related Issue(s)
None — refactor / dependency hygiene.