v2026.5.4
jdx/misev2026.5.4May 9, 2026by mise-en-dev
AI Summary
This release adds automatic musl detection for Java on Alpine Linux and significantly improves PowerShell activation performance by avoiding shell spawning. It also cleans up the `ibmcloud` install footprint.
Key Highlights
- Automatic musl detection for Java on Alpine, removing the need for explicit `-musl` suffixes.
- PowerShell activation is ~270ms faster on `pwsh` and ~185ms faster on `powershell` by directly setting exit codes.
- IBM Cloud now uses `symlink_bins`, reducing the `$PATH` footprint and preventing binary shadowing.
New Features
- Automatic musl detection for Java
- Improved PowerShell activation performance
Full Release Notes
A small release that smooths out Java installs on Alpine, makes pwsh shell activation noticeably snappier, and cleans up `ibmcloud`'s `$PATH` footprint. ## Added - **(java)** Automatic musl detection on Alpine Linux ([#9688](https://github.com/jdx/mise/pull/9688)) by @roele. Java versions on Alpine no longer require an explicit `-musl` feature suffix — `mise-java` now exposes an `alpine-linux` OS containing the musl builds, and mise selects it automatically when running on a musl libc. So this: ```sh mise use java@corretto-25 ``` picks the Alpine/musl Corretto build on Alpine, and `-musl`-suffixed versions (e.g. `corretto-musl-25`) continue to resolve for backwards compatibility. ## Fixed - **(registry)** `ibmcloud` now uses `symlink_bins`, so only the `ibmcloud` binary is placed on `$PATH` instead of the entire install directory. This prevents the bundled `install` binary from shadowing `/usr/bin/install` ([#9685](https://github.com/jdx/mise/pull/9685)) by @dnwe. ## Performance - **(pwsh)** Activation no longer spawns a fresh `pwsh -NoProfile -Command exit $status` (or `powershell` on PS 5) after every hook just to propagate mise's exit code — it now assigns `$global:LASTEXITCODE = $status` directly. On a typical machine that's ~270ms (`pwsh`) or ~185ms (`powershell`) shaved off every prompt ([#9723](https://github.com/jdx/mise/pull/9723)) by @vemoo. ## Changed - **(schema)** `xtasks/render/schema.ts` no longer overwrites `$defs.task_template` and the trailing `$defs.task.oneOf` branch on every `mise run render:schema`; those shapes already live in `schema/mise.json`, with lightweight guard checks remaining ([#9680](https://github.com/jdx/mise/pull/9680)) by @risu729. ## Aqua Registry Updates New packages: - [`DataDog/managed-kubernetes-auditing-toolkit`](https://github.com/DataDog/managed-kubernetes-auditing-toolkit) - `oracle.com/sqlcl` Updated packages: - [`alltuner/mise-completions-sync`](https://github.com/alltuner/mise-completions-sync) - [`iann0036/iamlive`](https://github.com/iann0036/iamlive) - [`pnpm/pnpm`](https://github.com/pnpm/pnpm) **Full Changelog**: https://github.com/jdx/mise/compare/v2026.5.3...v2026.5.4 ## 💚 Sponsor mise mise is built by [@jdx](https://github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.