feat(dash): restore Release/Nightly channel toggle + version pin in onboarding - #73
Merged
Merged
Conversation
…nboarding The dash onboarding's Install ROCm SDK path hardcoded `--channel release --format wheel`, dropping the channel choice the legacy tui.rs onboarding offered. The underlying CLI (`install sdk`) and TheRock resolver already support `--channel`, `--version`, and `--build-date` (mutually exclusive, validated) — only the UI was missing. Add a Configure sub-view to the InstallSdk path: - ←/→ toggle channel (Release/Nightly) - ↑/↓ cycle an optional version pin (None / Build date / Version) - typing edits the pin value; Enter stages the install for approval A None pin leaves the command at `--channel <ch> --format wheel`, so the default Release path is byte-identical to the prior behavior. The pin is available on both channels and maps to the CLI's `--build-date`/`--version`. Tests: default Release args unchanged; nightly toggle; build-date and version pins; empty pin omitted; chars ignored until a pin mode is selected; backspace editing; Esc returns to Choose. Existing InstallSdk tests updated for the extra Configure-confirm step. Signed-off-by: Michael Roy <michael.roy@amd.com>
9 tasks
rominf
approved these changes
Jul 1, 2026
rominf
left a comment
Collaborator
There was a problem hiding this comment.
Approve. The default Release path is provably unchanged (byte-identical args, pinned by a dedicated test), the new Configure sub-view is self-contained and well covered, and the generated commands match the real rocm install sdk contract.
Verified the flag contract end-to-end against the CLI, not just the unit tests:
--channel release|nightly(default release),--version,--build-date <YYYY-MM-DD>all match — the UI's date placeholder even mirrors the CLI metavar.rocm install sdk --channel nightly --build-date <date>parses and reaches the TheRock resolver correctly (a subsequent "no compatible packages for that date" is a data-level result, not a flag issue).PinModebeing a single enum means the UI can only ever emit one of--version/--build-date, so the mutually-exclusive pair can't be sent together.
Two optional, non-blocking follow-ups:
pin_valuecarries over when the Pin mode is switched (e.g. type a build date, switch to Version, and the date becomes the version value). Clearing it on mode change would re-show the placeholder and avoid feeding stale input to a different flag.- Pin values are passed through with no client-side validation (spaces / arbitrary non-control chars accepted); the user only learns of an unusable value after approving and running. Delegating to the resolver is a reasonable scoped choice — just noting there's no pre-flight feedback.
Neither blocks merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The dash onboarding's Install ROCm SDK path hardcoded
--channel release --format wheel, dropping the Release/Nightly channel choice the legacytui.rsonboarding used to offer (intentionally dropped when bootstrap adopted the dash onboarding UX in #67). The underlying CLI (rocm install sdk) and the TheRock resolver already fully support--channel,--version, and--build-date(mutually exclusive, validated) — only the onboarding UI was missing. This re-exposes it.What changed
A new Configure sub-view on the InstallSdk path (
crates/rocm-dash-tui/src/ui/onboarding.rs):←/→(or Tab) toggle channel — Release / Nightly↑/↓cycle an optional version pin — None / Build date / VersionThe pin maps to the CLI's mutually-exclusive
--build-date/--versionflags and is available on both channels. ANonepin (the default) leaves the command at--channel <ch> --format wheel, so the default Release path is byte-identical to the prior behavior.Scope is limited to
onboarding.rs. No CLI or resolver changes were needed.Test plan
All in
cargo test -p rocm-dash-tui(run--test-threads=1per the known tui env-race flake):--channel release --format wheel)--channel nightly; toggle is reversible--build-date <YYYY-MM-DD>--version <v>(and not--build-date)cargo clippy -p rocm-dash-tui --all-targetsclean;cargo build -p rocmgreen; 531 lib tests passNotes
dash-ui-polish-worklauncher-routing work; based onmain.rocm) does not yet expose this — a separate follow-up if desired.