Skip to content

fix(backends): deprecate b shorthand#9234

Merged
jdx merged 3 commits intojdx:mainfrom
risu729:deprecate-backends-b-alias
Apr 18, 2026
Merged

fix(backends): deprecate b shorthand#9234
jdx merged 3 commits intojdx:mainfrom
risu729:deprecate-backends-b-alias

Conversation

@risu729
Copy link
Copy Markdown
Contributor

@risu729 risu729 commented Apr 18, 2026

Summary

  • hide the mise b alias from generated help/docs while preserving it as a hidden clap alias during the deprecation window
  • warn via deprecated_at! when mise b is invoked, with removal scheduled for mise 2027.4.0
  • add focused unit/e2e coverage and regenerate usage docs

Tests

  • mise run format
  • mise run render:usage
  • cargo test --all-features cli::tests::test_uses_deprecated_backends_alias
  • mise run test:e2e e2e/cli/test_backends
  • cargo fmt --all -- --check
  • git diff --check

This PR description was generated by an AI coding assistant.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 18, 2026

Greptile Summary

This PR deprecates the mise b shorthand for mise backends by moving it from a visible_alias to a hidden clap alias, emitting a deprecated_at! runtime warning on invocation, and appending a deprecation notice to after_long_help. Generated docs, man page, usage KDL, and completions files are all updated accordingly.

Confidence Score: 5/5

Safe to merge — implementation is correct, version format follows convention, and tests cover the key edge cases.

All findings are P2 (the after_long_help text appearing on mise backends --help is a known clap limitation, not a bug). The deprecation logic, version numbers (2026.4.0 / 2027.4.0), and e2e/unit coverage are all correct.

src/cli/backends/mod.rs — minor UX note about the deprecation notice appearing even for the canonical command name.

Important Files Changed

Filename Overview
src/cli/backends/mod.rs Moves b from visible_alias to hidden aliases and adds after_long_help deprecation notice; the notice appears for all invocations of the command, not only mise b.
src/cli/mod.rs Adds uses_deprecated_backends_alias / warn_deprecated_backends_alias helpers and calls the warning after logger init; four unit tests cover the key argument-parsing edge cases.
e2e/cli/test_backends Adds two assertions verifying mise b still lists backends and emits the deprecated [cli.backends.b] warning.
docs/cli/backends.md Auto-regenerated: removes the public b alias entry and appends the deprecation notice from after_long_help.
mise.usage.kdl Consolidates b, backend, backend-list into a single hidden alias entry and adds the after_long_help deprecation text.
docs/mise.usage.kdl Mirrors mise.usage.kdl changes in the docs variant; auto-generated.
man/man1/mise.1 Auto-regenerated: removes the public b alias entry from the man page.
xtasks/fig/src/mise.ts No changes needed; b was never listed as an alias in the Fig completions file.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["User runs: mise b [args]"] --> B["Cli::command() + preprocess_args"]
    B --> C["Cli::parse_from(processed_args)\n(clap resolves 'b' → Backends)"]
    C -->|"--help"| D["Print help + AFTER_LONG_HELP\n(deprecation notice)\nthen exit"]
    C -->|"normal invocation"| E["warn_deprecated_backends_alias(cmd, args)"]
    E -->|"first non-global arg == 'b'"| F["deprecated_at!('2026.4.0', '2027.4.0', ...)\nemits warn! to stderr"]
    E -->|"first non-global arg != 'b'"| G["no warning"]
    F --> H["migrate::run() + Backends::run()"]
    G --> H
Loading

Reviews (2): Last reviewed commit: "fix(backends): use version convention fo..." | Re-trigger Greptile

Comment thread src/cli/mod.rs
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request deprecates the b alias for the mise backends command, with a planned removal in version 2027.4.16. The changes include updating documentation, CLI usage specifications, and the command-line interface implementation to hide the alias and issue a formal deprecation warning when it is invoked. Additionally, unit and end-to-end tests have been added to verify the warning logic and ensure it correctly distinguishes between the alias and other command arguments. I have no feedback to provide.

@risu729 risu729 marked this pull request as ready for review April 18, 2026 06:39
@jdx jdx merged commit 61d086a into jdx:main Apr 18, 2026
36 checks passed
@risu729 risu729 deleted the deprecate-backends-b-alias branch April 18, 2026 11:09
jdx pushed a commit that referenced this pull request Apr 18, 2026
### 🐛 Bug Fixes

- **(backend)** respect install_before in latest lookup by @risu729 in
[#9193](#9193)
- **(backend)** route explicit latest through stable lookup by @risu729
in [#9228](#9228)
- **(backends)** deprecate b shorthand by @risu729 in
[#9234](#9234)
- **(config)** warn for deprecated env keys by @risu729 in
[#9205](#9205)
- **(config)** treat enable_tools empty as disable-all by @risu729 in
[#9108](#9108)
- **(github)** avoid auth on release asset downloads by @risu729 in
[#9060](#9060)
- **(gitlab)** warn when glab OAuth2 token is expired by @stanhu in
[#9195](#9195)
- **(npm)** honor install_before without day drift by @risu729 in
[#9157](#9157)
- **(npm)** warn on old bun and pnpm for install_before by @risu729 in
[#9232](#9232)
- **(pipx)** honor install_before for uv and pipx installs by @risu729
in [#9190](#9190)
- **(registry)** allow shfmt on Windows by @zeitlinger in
[#9191](#9191)

### 🚜 Refactor

- **(backend)** remove unused rolling release helper by @risu729 in
[#9175](#9175)
- **(backend)** use file util for removals by @risu729 in
[#9206](#9206)

### 📚 Documentation

- **(config)** clarify always_keep_download behavior by @risu729 in
[#9235](#9235)
- **(configuration)** add rust to idiomatic version files by @jjt in
[#9233](#9233)
- **(contributing)** expand contribution guide introduction by
@marianwolf in [#9208](#9208)
- **(github)** document multiple release assets workaround by @risu729
in [#9236](#9236)

### 📦️ Dependency Updates

- update actions/setup-node action to v6 by @renovate[bot] in
[#9183](#9183)
- update dependency @types/node to v25 by @renovate[bot] in
[#9187](#9187)
- update crazy-max/ghaction-import-gpg action to v7 by @renovate[bot] in
[#9186](#9186)
- update actions/cache action to v5 by @renovate[bot] in
[#9181](#9181)
- update amannn/action-semantic-pull-request action to v6 by
@renovate[bot] in [#9184](#9184)
- update apple-actions/import-codesign-certs action to v6 by
@renovate[bot] in [#9185](#9185)
- update dependency eslint to v10 by @renovate[bot] in
[#9200](#9200)
- update dependency toml to v4 by @renovate[bot] in
[#9201](#9201)
- update rust crate reqwest to 0.13 by @renovate[bot] in
[#9171](#9171)
- update ghcr.io/jdx/mise:deb docker digest to 523d826 by @renovate[bot]
in [#9198](#9198)
- update ghcr.io/jdx/mise:alpine docker digest to 05617e0 by
@renovate[bot] in [#9196](#9196)
- update ghcr.io/jdx/mise:rpm docker digest to c1992f9 by @renovate[bot]
in [#9199](#9199)
- update ghcr.io/jdx/mise:copr docker digest to 90db6cd by
@renovate[bot] in [#9197](#9197)
- update taiki-e/install-action digest to 58e8625 by @renovate[bot] in
[#9209](#9209)
- update fedora docker tag to v45 by @renovate[bot] in
[#9213](#9213)
- update docker/setup-buildx-action action to v4 by @renovate[bot] in
[#9212](#9212)
- update docker/metadata-action action to v6 by @renovate[bot] in
[#9211](#9211)
- update docker/login-action action to v4 by @renovate[bot] in
[#9210](#9210)
- update dependency typescript to v6 by @renovate[bot] in
[#9202](#9202)
- update docker/build-push-action action to v7 by @renovate[bot] in
[#9203](#9203)
- update github artifact actions (major) by @renovate[bot] in
[#9215](#9215)
- update rust crate duct to v1 by @renovate[bot] in
[#9220](#9220)
- update rust crate demand to v2 by @renovate[bot] in
[#9219](#9219)
- update rust crate clx to v2 by @renovate[bot] in
[#9218](#9218)
- update nick-fields/retry action to v4 by @renovate[bot] in
[#9217](#9217)
- update jdx/mise-action action to v4 by @renovate[bot] in
[#9216](#9216)
- update rust crate self_update to 0.44 by @renovate[bot] in
[#9174](#9174)
- migrate eslint config to flat format for v10 compat by @jdx in
[#9222](#9222)
- update actions/checkout action to v6 by @renovate[bot] in
[#9182](#9182)
- update rust crate toml to v1 by @renovate[bot] in
[#9225](#9225)
- update rust crate versions to v7 by @renovate[bot] in
[#9226](#9226)
- update rust crate which to v8 by @renovate[bot] in
[#9227](#9227)
- update rust crate rmcp to v1 by @renovate[bot] in
[#9221](#9221)

### 📦 Registry

- add sheldon by @3w36zj6 in
[#9104](#9104)
- add pocketbase by @ranfdev in
[#9123](#9123)
- add worktrunk ([aqua:max-sixty/worktrunk,
cargo:worktrunk](https://github.com/max-sixty/worktrunk,
cargo:worktrunk))#1 by @edouardr in
[#8796](#8796)
- add dependency-check
([aqua:dependency-check/DependencyCheck](https://github.com/dependency-check/DependencyCheck))
by @kapitoshka438 in [#9204](#9204)
- add janet by @ranfdev in
[#9241](#9241)

### New Contributors

- @ranfdev made their first contribution in
[#9241](#9241)
- @jjt made their first contribution in
[#9233](#9233)
- @marianwolf made their first contribution in
[#9208](#9208)
- @edouardr made their first contribution in
[#8796](#8796)

## 📦 Aqua Registry Updates

#### New Packages (3)

- [`LargeModGames/spotatui`](https://github.com/LargeModGames/spotatui)
-
[`android-sms-gateway/cli`](https://github.com/android-sms-gateway/cli)
- [`velero-io/velero`](https://github.com/velero-io/velero)

#### Updated Packages (1)

- [`skim-rs/skim`](https://github.com/skim-rs/skim)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants