chore(deps): update dependency jdx/mise to v2026.5.1#3225
Merged
Conversation
This was referenced May 4, 2026
fe2ce5f to
6b3dddc
Compare
6 tasks
6b3dddc to
78e8f39
Compare
8d2f03d to
c0f5980
Compare
6 tasks
c0f5980 to
25d1d1b
Compare
25d1d1b to
42bb3d6
Compare
7 tasks
42bb3d6 to
678a7c3
Compare
678a7c3 to
9d9dd31
Compare
marcusrbrown
approved these changes
May 7, 2026
This was referenced May 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2026.4.1→2026.5.1Release Notes
jdx/mise (jdx/mise)
v2026.5.1: : Aqua cosign and a reshim rescueCompare Source
A small follow-up to v2026.5.0 that lands top-level cosign verification for the aqua backend, fixes a
mise reshimfailure caused by stalelatestinstall directories, and tightens schema validation.Added
cosignmetadata when verifying packages, covering both checksum and artifact flows and reusing the existing native sigstore path. Lockfiles record top-level cosign provenance, with new e2e and lockfile regression coverage (#9111) by @risu729.wasm-toolsviaaqua:bytecodealliance/wasm-toolsfor working with the WebAssembly Component Model (#9596) by @2xdevv.Fixed
(shim)
mise reshimno longer aborts withfailed to rebuild shims: no versions found for <tool>when an install directory literally namedlatest(or any other non-resolvable name) is left on disk.Toolset::list_installed_versionsalready reads concrete version directory names, so it now constructsToolVersiondirectly instead of calling.resolve()(no network), and per-toolToolRequest::newfailures are warned-and-skipped instead of aborting the entire rebuild (#9599) by @jdx. Repro:(schema) All files under
schema/are now validated againstdraft/2020-12in strict mode. Hand-written schemas and theBoolOrStringrenderer inschema.tsuseoneOfinstead of union type arrays so AJV'sstrictTypesno longer rejects them; the bogus--strict-schemaflag is replaced with--strict-types=true --strict-tuples=true(#9594) by @risu729.(registry)
elixir-lsre-enablessymlink_binsso the move to the aqua backend stops exposing internal binaries that aren't meant to be called directly (#9592) by @AlternateRT.Changed
rebarnow installs from the GitHub backend (erlang/rebar3) since rebar3 is just anescript; the asdf plugin fallback is removed. Versions before rebar 3 are no longer supported, and the installed executable remainsrebar3to match upstream docs (#9576) by @risu729.bashlydrops theasdf:mise-plugins/mise-bashlyfallback and the redundant explicitrubydependency, since thegembackend already pulls in Ruby (#9578) by @risu729.Documentation
dependsruns install hooks for the listed dependency tools (#9573) by @risu729.Aqua Registry Updates
New packages:
salesforce/reactive-grpc/protoc-gen-reactor-grpcspinframework/spinUpdated:
pnpm/pnpmFull Changelog: jdx/mise@v2026.5.0...v2026.5.1
💚 Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.5.0: : Conda graduates, smarter prereleases, and Windows POSIX tasksCompare Source
Added
dartandflutterdeps providers backed bypubspec.yaml/pubspec.lock(#9505) by @tjarvstrand.sourcesentries can now be prefixed with!to exclude paths, and a newsources_excludefield is supported; exclusions apply to freshness checks,task_source_files, andmise watch(#9496) by @jlarmstrongiv.statto the Luafilemodule so plugins can read file metadata (#9497) by @esteve.neo4j(#9525),rustfs(#9530),expert(#9498),systemctl-tui(#9521),codon(#9538),yr(#9542),betterleaks(#9541),git-filter-repo(#9550),umoci(#9555),google-java-format(#9488), an aqua backend forelixir-ls(#9557), and enabledshellcheckon Windows (#9487).Fixed
-nightly,-canary,-experimental,-insider,-edgeas prereleases (#9523) by @jdx.dotnet.package_flags = "prerelease"and--prereleasefor dotnet (#9551) by @jdx.No versions foundwarnings for backends that support unresolvedlatest(#9548) by @jdx.latestbefore installing missing tools (#9545) by @jdx.install_envduringcargo install(#9502) by @c22.api_url(#9486) by @jdx.--no-git-checkstoaube publish(#9483) by @jdx.epel-9chroots since rust >= 1.91 is unavailable (#9484) by @jdx.Changed
checkmake(#9504) by @eread.Deprecated
shorthands_filesetting /MISE_SHORTHANDS_FILEis deprecated; warning starts in 2026.6.0, removal planned for 2026.12.0. Use[plugins]instead (#9534) by @risu729.Documentation
ghtknas a GitHubcredential_command(#9546) by @jdx.mise watchdocs topitchfork.en.dev(#9536) by @risu729.execexample for variable echoing (#9567) by @kuboon.💚 Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.4.28: : Remote tasks pinned by commit SHACompare Source
A small patch release: remote tasks pinned to a commit SHA no longer panic, and the Fedora COPR packaging pipeline picks up Dockerfile fixes again.
Fixed
(task) Remote tasks referenced by commit SHA (a
git::source with?ref=<40-char hex>) no longer crash mise withwe map by name only and have no object-id in refspecfromgix(#9473) by @jdx.gix-refspecparses any 40- or 64-char hex string as anObjectIdrefspec, butgix::clone::fetch::util::find_custom_refnameonly handles name-based matches andexpect()s on the result, so passing a bare SHA toprepare_clone.with_ref_name()triggered a hard process panic on every cache miss.Git::clonenow detects SHA-shaped refs via alooks_like_shaheuristic, skips both thewith_ref_name()andgit clone -bpaths (neither accepts bare SHAs), drops--depth 1since shallow clones may not contain the requested object, and checks out the SHA after the clone via the existing CLI-backed update. Named branches and tags continue to use the existing fast paths. Closes #9472.(copr) The
copr-publishworkflow no longer pins a staleghcr.io/jdx/mise:coprimage digest, anddocker.ymlnow rebuilds the:coprimage wheneverpackaging/copr/Dockerfilechanges onmain(#9451) by @bestagi. Previously the workflow kept hittingModuleNotFoundError: No module named 'rich'even after #9421 switchedcopr-clitodnf install, because the hardcoded digest still pointed at the old pip-installed image.New Contributors
Full Changelog: jdx/mise@v2026.4.27...v2026.4.28
v2026.4.27: : npm install args, smarter watch, and a macOS shim recursion fixCompare Source
A focused release: more control over how npm-backed tools get installed, smarter
mise watchthat follows task dependencies, and a fix for a nasty macOS shim recursion that could lock up a shell duringmise up --bump.Added
(backend) New
npm_args,pnpm_args,bun_args, andaube_argstool options on the npm backend (#9109) by @risu729. Each one is forwarded to the matching package manager when it's the activesettings.npm.package_manager, mirroring thepipxbackend's style. The args are also recorded in the lockfile and at install time:(env) External vfox environment plugins now get
ctx.config_rootin theirMiseEnv/MisePathhooks (#9465) by @hisaac. This matches what built-in directives like_.filealready see, so plugins (e.g.mise-xcode) can resolve user-supplied relative paths against the project root regardless of the shell's cwd.watch_filesreturned from a plugin are now also absolutized againstconfig_rootinstead ofcurrent_dir().(task)
mise watchnow follows the task graph and watches the sources of each chosen task's dependencies as well as its own (#9437) by @43081j. Pass--skip-deps(or setskip_deps) to restore the previous "task sources only" behavior. Explicit--globoverrides still win.(release)
scripts/gen-aqua-changelog.shnow diffs the previous tag'sregistry.yamlagainst the current one and emitsNew Packages/Updated Packagessections in the release PR, instead of dumping the aqua-registry release tags rolled into the release (#9471) by @jdx. This restores the pre-#9043 behavior for the merged-registry world.Fixed
(backend) When
_list_remote_versionsreturned an empty list (invalid module path, throttling, etc.) the empty result was cached as if it were authoritative, poisoning both the on-disk cache file and the in-memoryOnceCellfor up to an hour (#9444) by @c22. The cache is now cleared in both places when the list comes back empty, so the next call re-fetches.(shims) Fixed an infinite shim recursion on macOS reported in #9462 where
mise up --bumpagainst npm packages would loopmise -> npm shim -> mise -> npm shim -> ...and sometimes crash the session (#9468) by @jdx. The trigger was a case-mismatched$HOMEinPATH(/Users/Olfway/...vs./Users/olfway/...) — the shims-stripping inBackend::dependency_envcompared byte-equal, so on case-insensitive APFS/HFS+ volumes it was a no-op andnpmre-resolved to the mise shim. A newfile::paths_eqdoes case-insensitive compares on macOS/Windows and byte-equal on Linux, and is now used everywhere mise asks "is this PATH entry the shims directory?" — includingpath_env_without_shims,which_no_shims,PathEnvpartitioning,cli::execprogram resolution, and the doctor'sshims_on_pathcheck (which had been silently reportingnofor affected users).(task) Under
deny_env = trueon Linux, every env var was being stripped from the child process — including thePATH/HOME/USER/SHELL/TERM/LANGthatfilter_envand the docs say should pass through (#9467) by @jdx, fixing #9466.apply_sandbox()was callingCommand::env_clear()after the task executor populated explicit envs via.envs(filtered_env), wiping both. The Linux branch now snapshots the explicit envs before clearing and re-applies them; macOS already did this. A newpath_testtask ine2e/sandbox/test_sandbox_taskguards against regressions.New Contributors
Full Changelog: jdx/mise@v2026.4.26...v2026.4.27
v2026.4.25: : Sharper task tooling and lockfile fixesCompare Source
A patch release focused on smoothing rough edges in tasks (sandbox path resolution, dependency templates, a new
--name-onlylisting) and fixing a handful of upgrade/ls-remotepitfalls.Added
(task) New
--name-onlyflag onmise tasks ls(andmise tasks) prints one task name per line — no headers, no padding, no description column (#9435) by @jdx. It composes with--all,--global/--local,--hidden,--sort/--sort-order, and uses a broken-pipe-tolerant writer so dropping it intofzfJust Works:mise run "$(mise tasks ls --name-only --all | fzf)"Conflicts with
--json,--extended, and--usage.Fixed
(task) Dependency templates can now branch on
usagevalues inside Tera statement tags, not just output expressions, and boolean/array flags are passed through with their real types instead of stringified (#9424) by @jdx. So this finally does what it looks like:(task) Tasks that define
usagewith subcommands but no top-level args/flags now correctly populateusage.cmdfor dependency templates, fixing a regression from #9424 where the early-return path skipped subcommand handling (#9431) by @jdx. The fix also de-duplicatesmake_usage_ctxbetween the script parser and the dep renderer so they can't drift again.(task) Sandbox
allow_read/allow_writepaths declared on a task are now resolved against the task's effective working directory rather than the shell'spwd(#9428) by @jdx. Previously,dir = "../bar"plusallow_read = ["."]opened up the caller's directory while the task itself ran inbar/and got blocked. CLI overrides likemise run --allow-read=…still resolve against shell cwd. Closes #9423.(lockfile)
mise upgradenow updates the global lockfile (~/.config/mise/mise.lock) when bumping a fuzzy version such aslatest(#9442) by @jdx. The grouping pass was excluding global config files entirely, and fuzzy requests could re-resolve through the stale lockfile entry mid-update. Newly installed versions are now overlaid before lockfiles are rewritten, so a globaldummy = "latest"upgrading from1.0.0to2.0.0actually pins2.0.0.(aqua) When
list_releases_including_prereleasesreturned an empty list (paginated/cached edge case, throttling, or a repo that genuinely has no releases), aqua fell back tolist_tagsand pulled in every git tag in the repo (#9443) by @jdx. For monorepos that tag sub-crates, that meant ripgrep'sgrep-regex-0.1.1and friends ended up in the sharedmise-versionssnapshot, soripgrep = "latest"resolved to a tag with no matching release asset and 404'd on install. Empty release lists now propagate as empty version lists; packages that legitimately use tags as their version source still opt in viaversion_source = "github_tag". Theremote_versionscache filename is also reverted toremote_versions.msgpack.zto avoid needlessly invalidating existing caches —VersionInfoalready deserializes forward-compatibly. (Server-sidemise-versionssnapshots will need to be regenerated with this fix.)(ls-remote)
mise ls-remote --jsonno longer emits"rolling":false,"prerelease":falseon every entry (#9439) by @jdx. Dummy output is now[{"version":"1.0.0"},{"version":"1.1.0"},{"version":"2.0.0"}]. Backends that legitimately set either flag (rust nightly/beta/stable, github/aqua pre-releases) still emit the field; cached entries written by older builds continue to deserialize.(docs) The docs site no longer flickers between light/dark themes on initial load (#9427) by @vhespanha. VitePress's anti-flicker inline script is now marked
data-cfasync="false"so Cloudflare's Rocket Loader stops deferring it. Fixes #9393.(Dockerfile)
copr-cliis now installed viadnfinstead of pip, fixingModuleNotFoundError: No module named 'rich'in the publish-copr workflow (#9421) by @bestagi.New Contributors
Full Changelog: jdx/mise@v2026.4.24...v2026.4.25
v2026.4.24: : Resilient downloads and global pre-release opt-inCompare Source
A small release that hardens HTTP downloads against flaky networks and adds a global way to surface pre-release versions, plus refreshed intro messaging.
Added
(ls-remote) New global
prereleasessetting (MISE_PRERELEASES=1) and a--prereleaseflag formise ls-remote(#9415) by @jdx. Acts asprerelease = trueapplied to every tool, so GitHub releases flaggedprerelease: trueshow up inls-remote,latestresolves against the full list, and fuzzy queries like1.2can match pre-release tags. Currently honored by thegithub:andaqua:backends; draft releases are still excluded.Fixed
(http) HTTP requests now retry transient failures with a jittered backoff schedule (~200ms / 1s / 4s / 15s, then capped at 15s) and the default
http_retriesis bumped from0to3(#9414) by @jdx. Retries fire on 5xx, 408, 429, and network-layer errors (connect refused, timeout, mid-stream body drops); deterministic 4xx responses like 404 fail fast without retry. Downloads wrap the full request + body so a chunk failure mid-stream restarts from byte 0 instead of failing the install. Each retry logs awarn!immediately so flaky infrastructure surfaces in real time, and the same logic now powers vfox plugin downloads (which honorMISE_HTTP_RETRIEStoo). SetMISE_HTTP_RETRIES=0to opt out. Thehttp→httpsfallback now only triggers on connection-level errors, not on HTTP status errors.(release)
scripts/publish-s3.shnow purges themise.en.devCloudflare zone (alongsidejdx.devandmise.run) after each S3 publish (#9416) by @jdx. Becauseinstall.shis uploaded withimmutablecache-control, missing the purge could leave one zone serving the previous release'sinstall.shnext to a new release'sinstall.sh.minisig.Documentation
Full Changelog: jdx/mise@v2026.4.23...v2026.4.24
v2026.4.23: : Pre-releases, libc preference, and a Node musl fixCompare Source
A patch release that adds a global
libcpreference and pre-release opt-in forgithub:/aqua:backends, alongside fixes for Node musl downloads, read-only system installs, andmise prunenetwork hangs.Added
(backend) Per-tool
prerelease = trueopt-in for thegithub:andaqua:backends (#9329) by @jakedgy. When set, GitHub releases flaggedprerelease: trueshow up inmise ls-remote,latestresolves against the full list including pre-releases, and fuzzy queries like1.2can match pre-release tags. Default behavior is unchanged; draft releases are still excluded.(backend) Global
libcsetting for selecting Linux precompiled binary variants (#9404) by @jdx. Acceptsmusl,glibc, orgnuand threads throughPlatform::current()/PlatformTargetso generic GitHub asset matching, aqua registry replacements (e.g.unknown-linux-gnu↔unknown-linux-musl), Bun, Python precompiled builds, Node, and vfoxenvTypeall honor the preference.export MISE_LIBC=muslFixed
(install) Stop rewriting healthy runtime symlinks (#9410) by @jdx. The rebuild path was unconditionally
remove_all+ recreating everylatest -> X.Y.Zsymlink, which became a hard failure under the common Docker pattern where root populates/usr/local/share/mise/installs/at build time and a non-root user runsmise installat runtime. Healthy symlinks now take a no-op path; the read-only system dir is no longer touched. If a write is genuinely required and can't happen, the install fails loudly instead of silently leaving a stalelatest.(node) Route musl tarball URLs to
unofficial-builds.nodejs.org(#9409) by @jdx. After #9404 Node started appending-muslto filenames but kept routing throughnodejs.org/dist/(which doesn't host them), causing 404s and lockfiles where the URL had a-muslsuffix while the checksum was still pinned to the glibc tarball. The tarball URL and matchingSHASUMS256.txtnow come from the same host, and a customnode.mirror_urlstill passes through unchanged. Lockfile merging is also hardened to drop stalechecksum/size/url_apiwhen URLs disagree.(prune) Skip remote version resolution for tracked configs (#9406) by @jdx.
mise prunewas hitting npm, the Go proxy, and the GitHub API to resolve tracked-config tool versions, which could hang on slow or failing registries. Since prune only protects installed versions from deletion, anofflineflag is now threaded throughResolveOptionsfor prune.mise upgradeis unchanged and still queries fresh remote data. Closes #9405.(backend) Allow unresolved
latestopt-in (#9401) by @jdx.latestnow falls back to an unresolved selector only when a backend's unfiltered remote version list is empty and the backend opts in viaunresolved_latest_version().pipxopts in for git-backed requests; backends that require concrete versions continue to fail rather than create literallatest/installs. Ifminimum_release_agefilters all candidates out, mise still reports no matching version.(schema) Allow array values in tool
additionalProperties(#9400) by @JP-Ellis. Configs likerust = { version = "1.77", components = ["rustfmt", "clippy"] }are no longer flagged as invalid by linters such as tombi.Registry
rumdl(#9397) by @scopllmfit(#9412) by @jylenhofNew Contributors
Full Changelog: jdx/mise@v2026.4.22...v2026.4.23
v2026.4.22: : Repaired latest resolution and clearer deps outputCompare Source
A focused patch release that repairs two
@latestregressions, givesmise depsclearer per-provider output labels, and renames theinstall_beforesetting tominimum_release_ageto match the wider ecosystem.Highlights
@latestresolution is fixed for Go modules that only publish pseudo-versions, and staleinstalls/<tool>/latest/directories are now repaired automatically.install_beforesetting has been renamed tominimum_release_age; the old name keeps working as a deprecated alias.mise depsoutput is now labeled by provider (e.g.[deps.codegen]) instead of repeating the raw command.Fixed
(backend) Two separate
@latestissues are repaired in #9383 by @jdx:@latestviago list -m -json <module>@​latest, so modules that only publish pseudo-versions still install a concrete version.installs/<tool>/latest/directories are now repaired generically by the runtime symlink migration. The migration reruns under a new marker and refreshes onlyinstall_stateafter rewriting directories, so the current process picks up the repaired layout without rebuilding the backend map (which previously broke config aliases). Numeric partial-version dirs such asinstalls/<tool>/25/are left alone, and real direct-URLlatestinstalls (e.g. UBI URL installs) are preserved when there is no concrete version to replace them with.(task)
mise depsoutput is now labeled with a stable[deps.<provider>]prefix on stdout/stderr (and in the progress message) instead of using the rawruncommand as the prefix, making repeated output from commands likepip install -r requirements.txtmuch easier to follow.mise deps add/removecontinues to run unprefixed. (#9385) by @jdxChanged
install_beforesetting and per-tool option have been renamed tominimum_release_age, matching pnpm's terminology. The oldinstall_beforename is preserved as a hidden, deprecated alias — global settings are migrated at load time, per-tool options resolve through the new key, and the JSON schema marks the old name as deprecated. Precedence is unchanged:--before> per-tool > global. (#9384) by @jdxAdded
Documentation
Cargo.tomlat build time), linking to the GitHub releases page. The build emits a warning if the version cannot be parsed instead of silently falling back. (#9388, #9389) by @jdxAqua Registry
Updated aqua-registry from v4.498.0 to v4.499.0.
Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at en.dev.
Full Changelog: jdx/mise@v2026.4.21...v2026.4.22
v2026.4.21: : untrust command and prune lockfile fixesCompare Source
A patch release that adds a new
mise untrustcommand, teachesmise pruneto skip tools tracked in lockfiles, and tightens GitHub asset auto-detection.Highlights
mise untrustcommand revokes trust on a config file.mise prunenow respects tracked lockfiles and no longer removes tools listed in them.--securityflag onmise registryincludes security info in JSON output.Added
--securityflag onmise registryincludes security info in JSON output. (#9364) by @jdxmise untrustcommand. (#9370) by @jdxFixed
mise prunenow respects tracked lockfiles. (#9373) by @jdxDocumentation
Registry
flux-operator-mcpaqua path. (#9357) by @monotekopenshift-install. (#9372) by @jdxgo-sdk. (#9371) by @jdxNew Contributors
Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at en.dev.
Full Changelog: jdx/mise@v2026.4.20...v2026.4.21
v2026.4.20: : Lockfile cleanup and path: fixesCompare Source
A focused patch release that cleans up two long-standing lockfile and path-resolution bugs, makes GitHub attestation verification tolerant of regex-based aqua registry URLs, and reworks how the aqua registry is baked into mise.
Highlights
mise lock tool@latestnow writes a concrete version and heals lockfiles already poisoned withversion = "latest".path:tool versions with relative paths resolve correctly against the config root.registry.yaml, pinned by tag.Fixed
(config) Relative
path:tool versions are now resolved at parse time against the config's root directory (or CWD for CLI args), with~/expansion and leading./stripped. Previously, a value likepath:./packages/logrwas joined withinstalls_pathat install time and produced a bogus directory such as~/.local/share/mise/installs/logr/./packages/logr. (#9320) by @jdx(lock)
mise lockhandling of@latesthas been overhauled (#9321 by @jdx):mise lock tool@latestnow resolveslatestto the newest installed version instead of writing the literal string"latest"into the lockfile.mise lockno longer produces duplicate[[tools.<name>]]entries when the config usestool = "latest".version = "latest"are cleaned up in a singlemise lockrun.GitHub artifact attestation verification now works when the aqua registry entry uses a regex in the workflow URL, unblocking installs such as
aqua:updatecli/updatecli. (#9327) by @monotekChanged
registry.yaml, pinned by tag viacrates/aqua-registry/aqua-registry/metadata.json. The build script generates a canonical package-id map plus an alias lookup table, so runtime lookups only parse the selected package YAML. The pinned tag is now visible inmise doctor. (#9043) by @risu729Added
grafana-kubernetes-plugin. (#9300) by @monotekDocumentation
http/https, dismissals persist per-id inlocalStorage, and the banner height is kept in sync with--vp-layout-top-heightvia aResizeObserver. Theexpiresfield is respected so banners automatically hide after a given date. (#9326, #9330, #9334) by @jdxAqua Registry
Updated aqua-registry from v4.492.0 to v4.498.0, which includes:
Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.
Full Changelog: jdx/mise@v2026.4.19...v2026.4.20
v2026.4.19: : OCI images, aqua templates, and more resilient installsCompare Source
This release adds a new way to package environments as OCI images, improves backend flexibility with aqua variable templating, and tightens several authentication and concurrency edge cases that were causing friction in real workflows.
The biggest addition is
misesupport for building OCI images directly frommise.toml, with per-tool layering to make image rebuilds more efficient. Alongside that, aqua-backed tools can now use templated variables, which should make more registries and package definitions work cleanly without custom glue. On the reliability side, fixes in conda, GitHub auth handling, vfox token usage, and interactive CLI cancellation should make automation and authenticated installs behave more predictably.Highlights
mise.tomlwith per-tool image layers.gsudo,kiro-cli,llama.cpp, and Flux operator tooling.Changes
Features
mise.tomlwith per-tool layers by @jdx in #9273gsudo(Sudo for Windows) to registry by @jdx in #9281Bug Fixes
self-updatecommand by @jdx in #9259Registry
flux-operator&flux-operator-mcpby @tiyee in #8852kiro-cliby @jdx in #9274llama.cpp(github:ggml-org/llama.cpp) by @jdx in #9282💚 Sponsor mise
mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.4.18: : Deps management, aube support, and vfox plugin dependenciesCompare Source
A feature-packed release that renames
mise preparetomise depswith new package management subcommands, adds aube as an npm backend package manager, enables vfox plugins to declare their own dependencies, and ships several important fixes for version resolution, lockfile concurrency, and GitHub Enterprise attestation verification.Highlights
mise preparerenamed tomise depswith add/remove subcommands -- The experimental dependency management command is nowmise deps, with newmise deps add npm:reactandmise deps remove npm:lodashsubcommands for managing individual packages. All config keys, settings, state files, and CLI flags have been updated accordingly ([prepare]to[deps],--no-prepareto--no-deps).npm.package_managernow defaults to"auto", which prefers theaubepackage manager when available and falls back tonpm. Explicitnpm.package_manager = "aube"is also supported.PLUGIN.depends = {"node", "python"}inmetadata.lua, so mise resolves installation order automatically without users needingdepends = [...]in their config.version_list_urlnow query their upstream sources directly, fixing the issue where tools like Flutter showed outdated versions.Added
mise depscommand with add/remove subcommands -- The experimentalmise preparecommand has been renamed tomise deps. Newmise deps addandmise deps removesubcommands let you manage individual packages usingecosystem:packagesyntax. Currently supports npm, yarn, pnpm, and bun ecosystems. Baremise depsdefaults tomise deps install(the previousmise preparebehavior). #9056 by @jdx--beforeflag formise latest-- One-off latest-version lookups can now be constrained by release date. Supports absolute dates (2024-06-01) and relative durations (90d,1y). Overrides per-toolinstall_beforeoptions and the globalinstall_beforesetting. #9168 by @risu729Aube package manager support for npm backend -- The npm backend now supports
aubeas an alternative package manager. The new defaultnpm.package_manager = "auto"prefersaubewhen it is available in the active toolset and falls back tonpmotherwise. #9256 by @jdxfilter_binsoption for SPM backend -- Restrict which executable products are built and linked from a Swift package. Filtering happens beforeswift build, so unwanted products are never compiled. #9253 by @jdxvfox plugin-declared dependencies via
metadata.lua-- Plugin authors can now declare tool dependencies directly in their plugin'smetadata.lua. User-specifieddependsinmise.tomlremains additive. #9051 by @ahemonRegistry: bitwarden-secrets-manager -- Now available via the aqua backend (
aqua:bitwarden/sdk-sm), replacing the legacy asdf plugin for better checksum/SLSA verification. #9255 by @msuzoaguFixed
Stale version listings for package-registry backends -- Backends with canonical upstream sources (npm, pipx, cargo, gem, go, and http/s3 with
version_list_url) now skip themise-versions.jdx.devcache and query upstream directly. This fixes the issue where tools like Flutter showed outdated versions until users setMISE_USE_VERSIONS_HOST=0. #9245 by @jdxConcurrent lockfile save race condition -- Fixed
ENOENTerrors when multiple mise processes updated the same lockfile simultaneously (commonly seen with parallel tool installs in CI viahk). Each save now uses a uniquely named temp file instead of a fixedmise.lock.tmppath. #9250 by @jdxGitHub Enterprise attestation verification -- Artifact attestation verification now routes to the configured
api_urlinstead of always hittingapi.github.com, fixing401 Unauthorizederrors for GHES users. #9254 by @jdxNoisy third-party debug/trace logs suppressed -- Debug and trace logs from dependency crates (h2, hyper, reqwest, ru
Configuration
📅 Schedule: (in timezone America/Phoenix)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.