Skip to content

dotnetup: Migrate walkthrough to summary-based approach #53837

@nagilson

Description

@nagilson

Summary

Restructure the dotnetup walkthrough to show a concise summary of defaults first, then let the user proceed, customize, or exit — similar to rustup's single-question flow but without a wall of text.

Current Behavior

The walkthrough prompts the user through multiple sequential questions (channel, mode, system install migration) regardless of whether the defaults are acceptable.

Proposed Behavior

Display a compact summary selector block:

╭───────────────────────────────────────────╮
│ dotnetup v0.1.2-preview.0.26210.1         │
│ .NET installation manager for developers. │
╰───────────────────────────────────────────╯

Welcome to dotnetup!

Would you like to install .NET with the recommended settings?

SDK Channel:   10.0 (determined from global.json at global_json_path)
PATH Usage:    Terminal Profile (recommended)

System installs to migrate:
  • SDK 10.0.300 (x64)
  • Runtime 10.0.5 (x64)
  • Runtime 9.0.12 (x64)
  ... and 4 more

> 1/y  Proceed with defaults and install
  2/c  Customize setup
  3/n  Exit without changes
  • Channel line: Show the resolved default channel. Append (from global.json) if sourced from a global.json file, or (latest) if using the default.
  • Path config line: Show the current mode name and a brief parenthetical (e.g., (recommended)).
  • System installs: Show up to 3 installs in an indented bullet list. If more exist, show ... and N more. Reuse existing enumeration/display logic.
  • Prompt: A single-line 1/y, 2/c, 3/n selector. Accept case-insensitive input.

If 2/c is chosen, proceed through the existing walkthrough flow (channel prompt, mode selector, migration prompt). The channel selector UI is only shown during customization.

Acceptance Criteria

  • Summary displays channel, mode, and up to 3 system installs to migrate.
  • 1/y proceeds with displayed defaults (no further prompts).
  • 2/c enters the full customization flow (existing walkthrough logic).
  • 3/n exits cleanly with no changes.
  • Channel prompt only appears in 2/c customization flow.
  • Non-interactive mode skips the summary and proceeds with defaults.
  • Existing WalkthroughWorkflows logic is reused, not duplicated.

We should create a minimal change by simply filling in the decisions for the user when the walkthrough calls the functions to decide what to do for each decision, without showing the additional prompts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dotnetupWork items around the proposed `dotnetup` bootstrapper/toolchain management tool and library

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions