v2026.7.4

jdx/misev2026.7.4Jul 9, 2026by mise-en-dev

AI Summary

This release graduates the bootstrap and dotfiles system out of experimental mode and improves Rust toolchain reconciliation.

Key Highlights

  • Bootstrap and dotfiles are now stable and work without experimental mode.
  • Skip re-installs in the `mise.run` script for CI efficiency.
  • Rust backend reconciles missing components and targets.

New Features

  • Parallel missing-version detection for larger tool sets
  • Linux arm64 glibc compatibility restoration
  • Scala alias resolution to canonical vfox fork
  • Docker-compose backend switch from aqua to github

Full Release Notes

This release graduates `mise bootstrap` and `mise dotfiles` out of experimental mode, teaches `mise install` to reconcile Rust components and targets, and restores Linux arm64 glibc compatibility for release builds.

## Added
- **Bootstrap and dotfiles are now stable.** `mise bootstrap` and all of its subcommands (packages, repos, macOS/Linux user services, shell activation, login shell) plus `mise dotfiles` no longer require experimental mode, so they work with `MISE_EXPERIMENTAL=0`. The related `mise doctor` diagnostics (system packages, macOS defaults, login-shell drift) and the missing `[bootstrap.packages]` hint on `mise install` are always on as well ([#10869](https://github.com/jdx/mise/pull/10869) by @jdx).
- **Skip re-installs in the `mise.run` install script.** Setting `MISE_INSTALL_SKIP_IF_EXISTS` avoids re-downloading mise when the requested version is already present at the install path, which is handy for CI/Docker builds that re-run the installer on every build ([#10882](https://github.com/jdx/mise/pull/10882) by @JamBalaya56562):
  ```sh
  curl https://mise.run | MISE_INSTALL_SKIP_IF_EXISTS=1 sh
  ```
  Only the resolved install path is checked (not the wider `PATH`), and default behavior is unchanged unless you opt in.

## Fixed
- **install:** the Rust backend now asks rustup whether the configured `components` and `targets` are actually installed before skipping an install, so `mise install` reconciles missing components/targets on an already-installed toolchain instead of treating a bare symlink as complete. Array-form config is now parsed (with trimming and empty-entry filtering) and host-suffixed component names are matched ([#10876](https://github.com/jdx/mise/pull/10876) by @jdx).
- **task:** `task_source_files()` is once again available when a task defines `usage` args and its run script is re-rendered with parsed CLI values ([#10870](https://github.com/jdx/mise/pull/10870) by @jdx).
- **upgrade:** `mise upgrade --minimum-release-age` no longer prints a misleading "newer release ignored" warning when the installed version already satisfies the hidden latest release ([#10877](https://github.com/jdx/mise/pull/10877) by @jdx).
- **build:** pinned the `aarch64-unknown-linux-gnu` cross image back to a fixed tag and added a shared glibc-floor check to release packaging, restoring predictable glibc compatibility for Linux arm64 tarballs ([#10875](https://github.com/jdx/mise/pull/10875) by @jdx).

## Performance
- **install:** missing-version detection now runs each backend's install-satisfaction check in parallel, speeding up detection for larger tool sets (a follow-up to the Rust reconciliation work). If the parallel batch fails it falls back to a sequential pass so the missing list stays accurate ([#10881](https://github.com/jdx/mise/pull/10881) by @jdx).

## Changed
- **registry:** the Scala shorthand now resolves to the canonical `vfox:mise-plugins/vfox-scala` fork; the `asdf:mise-plugins/mise-scala` fallback is unchanged ([#10864](https://github.com/jdx/mise/pull/10864) by @jdx).

## Documentation
- Fixed the broken bootstrap docs intro, linked the bootstrap sub-pages, and made a style/consistency pass across the bootstrap pages ([#10878](https://github.com/jdx/mise/pull/10878), [#10880](https://github.com/jdx/mise/pull/10880) by @jdx).
- Fixed broken source-code links in the generated CLI reference ([#10879](https://github.com/jdx/mise/pull/10879) by @jdx).

### Aqua Registry Updates
New packages: [`sderosiaux/launchdeck`](https://github.com/sderosiaux/launchdeck), [`syntax-sh/lexicon-releases`](https://github.com/syntax-sh/lexicon-releases).

**Full Changelog**: https://github.com/jdx/mise/compare/v2026.7.3...v2026.7.4

## 💚 Sponsor mise

mise is maintained by [@jdx](https://github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent.