feat(bootstrap): align cli with config sections#10613
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
💤 Files with no reviewable changes (2)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughBootstrap docs, generated help, and CLI specs were updated to use the new part names and ChangesBootstrap command namespace refresh
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 markdownlint-cli2 (0.22.1)docs/cli/bootstrap/dotfiles/apply.mdmarkdownlint-cli2 v0.22.1 (markdownlint v0.40.0) docs/cli/bootstrap/dotfiles/status.mdmarkdownlint-cli2 v0.22.1 (markdownlint v0.40.0) Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryReshapes the
Confidence Score: 5/5Safe to merge — all renamed commands retain hidden aliases and the e2e suite exercises both old and new forms. Every renamed command retains a hidden alias, so existing scripts keep working. The new No files require special attention. Important Files Changed
Reviews (3): Last reviewed commit: "fix(bootstrap): use scoped dotfiles exam..." | Re-trigger Greptile |
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.13 x -- echo |
21.8 ± 2.8 | 18.8 | 38.8 | 1.00 |
mise x -- echo |
22.1 ± 1.1 | 19.7 | 28.1 | 1.01 ± 0.14 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.13 env |
22.0 ± 1.3 | 18.9 | 26.7 | 1.00 |
mise env |
22.7 ± 1.6 | 19.7 | 29.4 | 1.03 ± 0.10 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.13 hook-env |
21.8 ± 1.4 | 19.0 | 26.6 | 1.00 |
mise hook-env |
24.2 ± 1.2 | 21.9 | 29.7 | 1.11 ± 0.09 |
hook-env measured 11% slower, but the relative uncertainty overlaps the 10% threshold. |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.13 ls |
18.4 ± 1.4 | 15.9 | 27.0 | 1.00 |
mise ls |
19.5 ± 1.3 | 16.3 | 23.6 | 1.06 ± 0.11 |
xtasks/test/perf
| Command | mise-2026.6.13 | mise | Variance |
|---|---|---|---|
| install (cached) | 150ms | 151ms | +0% |
| ls (cached) | 69ms | 70ms | -1% |
| bin-paths (cached) | 74ms | 75ms | -1% |
| task-ls (cached) | 146ms | 148ms | -1% |
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/cli/bootstrap.md`:
- Around line 4-5: The bootstrap docs header metadata is incorrect: the Usage
line is too strict and the Source code link points to the wrong module. Update
the bootstrap documentation header so it reflects that the command can run
without a subcommand, matching the `command: Option<Commands>` behavior in
`bootstrap.rs`, and change the source reference to the actual
`src/cli/bootstrap.rs` location. Use the `Usage` and `Source code` entries in
the docs header as the place to fix this.
In `@docs/cli/bootstrap/dotfiles/apply.md`:
- Around line 34-42: The examples block still uses the legacy dotfiles command
spelling, so update the usage samples in the apply docs to consistently use the
bootstrap namespace. Replace the `mise dotfiles apply` variants with the
corresponding `mise bootstrap dotfiles apply` forms, keeping the same flags and
examples, so the documented CLI matches the renamed surface.
In `@docs/cli/bootstrap/dotfiles/status.md`:
- Around line 27-35: The examples in the dotfiles status docs still mix the old
CLI form with the bootstrap namespace, so update the example block in the status
documentation to use the bootstrap command consistently. Keep the existing
`status` examples, but rewrite the `mise dotfiles ...` invocations to `mise
bootstrap dotfiles ...` so the docs match the renamed CLI surface and the
`status` section stays consistent.
In `@docs/cli/bootstrap/packages/status.md`:
- Around line 23-25: The command examples in the status docs are triggering
MD014 because they show prompted shell commands without any accompanying output.
Update the examples under the packages status section by either removing the “$”
prompt prefixes or adding representative output for the commands, using the
existing status command examples to keep the docs lint-clean.
In `@docs/cli/bootstrap/packages/upgrade.md`:
- Around line 53-58: The command examples in the package upgrade docs are
written as prompted shell commands only, which triggers MD014. Update the
examples in the bootstrap packages upgrade section by either removing the
leading shell prompt symbols from the commands or adding corresponding output
lines so the examples are no longer prompt-only; keep the example set consistent
across the listed mise bootstrap packages upgrade variants.
In `@docs/cli/bootstrap/packages/use.md`:
- Around line 51-53: The example block in the packages use docs is triggering
MD014 because it shows prompted commands without any output. Update the examples
under the use command documentation by either removing the leading shell prompts
or adding representative output for the listed commands, keeping the examples
consistent with the rest of the doc.
In `@docs/cli/dotfiles/apply.md`:
- Around line 37-41: The usage examples for DotfilesApply include an unsupported
--verbose flag that is not exposed by the command. Update the examples in the
docs block for apply to remove the --verbose case and keep only valid
invocations of mise dotfiles apply and its supported options, using the
DotfilesApply command name as the reference point.
In `@mise.usage.kdl`:
- Around line 519-522: The BootstrapPackagesCommands::Apply CLI spec advertises
an alias that the runtime does not currently support, causing a mismatch between
docs and behavior. Update the clap definition in
BootstrapPackagesCommands::Apply to either add support for the short alias i or
remove it from the mise.usage.kdl spec so generated help/man pages match the
actual command behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Central YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: 0a834412-3ba6-4f24-9d59-8b1c0f73b9a8
📒 Files selected for processing (86)
docs/.vitepress/cli_commands.tsdocs/bootstrap.mddocs/bootstrap/launchd.mddocs/bootstrap/macos-defaults.mddocs/bootstrap/packages/apk.mddocs/bootstrap/packages/apt.mddocs/bootstrap/packages/dnf.mddocs/bootstrap/packages/index.mddocs/bootstrap/packages/mas.mddocs/bootstrap/packages/pacman.mddocs/bootstrap/shell.mddocs/bootstrap/systemd.mddocs/cli/bootstrap.mddocs/cli/bootstrap/dotfiles.mddocs/cli/bootstrap/dotfiles/apply.mddocs/cli/bootstrap/dotfiles/status.mddocs/cli/bootstrap/launchd.mddocs/cli/bootstrap/launchd/apply.mddocs/cli/bootstrap/launchd/status.mddocs/cli/bootstrap/linux.mddocs/cli/bootstrap/linux/systemd-units.mddocs/cli/bootstrap/linux/systemd-units/apply.mddocs/cli/bootstrap/linux/systemd-units/status.mddocs/cli/bootstrap/macos-defaults.mddocs/cli/bootstrap/macos-defaults/apply.mddocs/cli/bootstrap/macos-defaults/status.mddocs/cli/bootstrap/macos.mddocs/cli/bootstrap/macos/defaults.mddocs/cli/bootstrap/macos/defaults/apply.mddocs/cli/bootstrap/macos/defaults/status.mddocs/cli/bootstrap/macos/launchd-agents.mddocs/cli/bootstrap/macos/launchd-agents/apply.mddocs/cli/bootstrap/macos/launchd-agents/status.mddocs/cli/bootstrap/mise-shell-activate.mddocs/cli/bootstrap/mise-shell-activate/apply.mddocs/cli/bootstrap/mise-shell-activate/status.mddocs/cli/bootstrap/packages.mddocs/cli/bootstrap/packages/apply.mddocs/cli/bootstrap/packages/brew/tap.mddocs/cli/bootstrap/packages/brew/untap.mddocs/cli/bootstrap/packages/import.mddocs/cli/bootstrap/packages/prune.mddocs/cli/bootstrap/packages/status.mddocs/cli/bootstrap/packages/upgrade.mddocs/cli/bootstrap/packages/use.mddocs/cli/bootstrap/shell.mddocs/cli/bootstrap/shell/apply.mddocs/cli/bootstrap/shell/status.mddocs/cli/bootstrap/systemd.mddocs/cli/bootstrap/systemd/apply.mddocs/cli/bootstrap/systemd/status.mddocs/cli/dotfiles.mddocs/cli/dotfiles/apply.mddocs/cli/dotfiles/status.mddocs/cli/index.mddocs/tips-and-tricks.mde2e/cli/test_bootstrape2e/cli/test_bootstrap_shell_activatee2e/cli/test_dotfiles_filese2e/cli/test_system_defaultse2e/cli/test_system_install_apke2e/cli/test_system_install_apte2e/cli/test_system_install_brew_linuxe2e/cli/test_system_install_brew_macos_slowe2e/cli/test_system_install_brew_source_slowe2e/cli/test_system_login_shelle2e/cli/test_system_statusman/man1/mise.1mise.usage.kdlschema/mise.jsonsrc/cli/bootstrap.rssrc/cli/doctor/mod.rssrc/cli/dotfiles/apply.rssrc/cli/dotfiles/mod.rssrc/cli/dotfiles/status.rssrc/cli/install.rssrc/cli/system/driver.rssrc/cli/system/install.rssrc/cli/system/upgrade.rssrc/cli/system/use.rssrc/system/defaults.rssrc/system/mod.rssrc/system/packages/brew/mod.rssrc/system/packages/brew/pour.rssrc/system/packages/brew/source.rssrc/system/shell_activation.rs
💤 Files with no reviewable changes (12)
- docs/cli/bootstrap/shell/apply.md
- docs/cli/bootstrap/shell/status.md
- docs/cli/bootstrap/macos-defaults/status.md
- docs/cli/bootstrap/systemd.md
- docs/cli/bootstrap/macos-defaults.md
- docs/cli/bootstrap/launchd.md
- docs/cli/bootstrap/systemd/status.md
- docs/cli/bootstrap/macos-defaults/apply.md
- docs/cli/bootstrap/launchd/status.md
- docs/cli/bootstrap/systemd/apply.md
- docs/cli/bootstrap/launchd/apply.md
- docs/cli/bootstrap/shell.md
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@xtasks/fig/src/mise.ts`:
- Around line 1371-1377: The bootstrap part suggestion arrays in mise.ts are
missing the legacy systemd alias, so update the `--only` and `--skip`
suggestions in the relevant bootstrap option setup to include `"systemd"`
alongside the existing legacy entries like `shell`, `defaults`, and `launchd`.
Make the change in the code paths that build the suggestions for the bootstrap
command so the completion list stays consistent with the supported usage
choices.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Central YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: 152e8b82-0407-4b42-8db9-a58432851e99
📒 Files selected for processing (14)
docs/.vitepress/cli_commands.tsdocs/cli/bootstrap.mddocs/cli/bootstrap/dotfiles/apply.mddocs/cli/bootstrap/dotfiles/status.mddocs/cli/bootstrap/packages/apply.mddocs/cli/bootstrap/packages/upgrade.mddocs/cli/dotfiles/apply.mddocs/cli/dotfiles/status.mddocs/cli/index.mdman/man1/mise.1mise.usage.kdlsettings.tomlsrc/cli/bootstrap.rsxtasks/fig/src/mise.ts
✅ Files skipped from review due to trivial changes (11)
- docs/cli/bootstrap/dotfiles/apply.md
- docs/cli/bootstrap/dotfiles/status.md
- docs/cli/bootstrap/packages/upgrade.md
- docs/cli/dotfiles/apply.md
- docs/cli/dotfiles/status.md
- settings.toml
- docs/cli/bootstrap/packages/apply.md
- docs/cli/bootstrap.md
- docs/.vitepress/cli_commands.ts
- docs/cli/index.md
- man/man1/mise.1
🚧 Files skipped from review as they are similar to previous changes (2)
- src/cli/bootstrap.rs
- mise.usage.kdl
Summary
mise bootstrapsubcommands so the visible CLI maps to config sections (packages apply,dotfiles,mise-shell-activate,macos defaults,macos launchd-agents,linux systemd-units,repos)Tests
cargo fmt --checkcargo checkcargo buildgit diff --checkMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_bootstrapMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_bootstrap_shell_activateMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_system_defaultsMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_dotfiles_filesMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_system_login_shellMISE_E2E_BIN=$PWD/target/debug/mise e2e/run_test e2e/cli/test_system_statusThis PR was generated by an AI coding assistant.
Note
Medium Risk
User-facing CLI renames and nesting may break scripts that relied on old command paths; behavior is largely preserved via aliases, but discoverability and automation need updating.
Overview
Restructures the experimental
mise bootstrapCLI so visible commands mirror config layout:packages apply(replacinginstall),bootstrap dotfiles,mise-shell-activate,macos defaults,macos launchd-agents, andlinux systemd-units.Legacy paths (
mise dotfiles applyduring bootstrap,packages install,shell,macos-defaults,launchd,systemd) remain as hidden or aliased compatibility shims. Top-levelmise bootstrapand--only/--skipare updated to the new part names (with old short names still accepted).Docs, generated CLI help, man pages, usage KDL, JSON schema, doctor/install hints, Fig completions, and e2e tests are updated to the new command strings throughout.
Reviewed by Cursor Bugbot for commit 93e4575. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
mise bootstrapsubcommands for dotfiles, shell activation, macOS defaults/LaunchAgents, and Linux systemd units, each withapply/status.bootstrap dotfiles applyandbootstrap dotfiles statusas documented bootstrap-managed workflows.packages applyconsistently;installremains accepted as an alias.