The default 24-hour minimum_release_age now applies to every backend. Many more backends report release dates, so the cooldown can actually hold new versions back, and mise warns when it installs a version it couldn't date. This release also adds a PowerShell installer for Windows, read_json/read_yaml/read_toml template functions, dotnet@lts/dotnet@sts, and new dotfiles options.
Changed
-
The default
minimum_release_ageapplies to every backend. The built-in 24h cooldown used to cover only backends that reported release dates (aqua, cargo, core, github, npm, pypi and others). asdf, vfox, conda, dotnet,http:ands3:tools had no cutoff at all. Now every backend gets the cooldown. A tool whose only version is less than 24h old now resolves to "no versions found", as aqua and github tools already did. To opt a tool out, add it tominimum_release_age_excludes. To turn the cooldown off, setminimum_release_age = "0s". #14701 (@jdx) -
mise warns when it can't check a version's release date. A version with no known date still passes the cutoff, but
mise install,mise upgradeandmise usenow print a one-time warning naming the version. Exact pins you wrote yourself don't trigger it.mise env,mise ls,mise outdatedandmise ls-remotenever print it. #14694 (@jdx)WARN asdf:tiny@3.1.0 has no release date, so the ... cutoff cannot be checked and it is allowed (exclude it with minimum_release_age_excludes to silence this) -
More backends report release dates, so the cooldown applies to them:
- conda versions use the channel's earliest index timestamp. #14693
- aqua packages that take versions from git tags (
version_source: github_tag, such asaws/aws-cli,docker/cliandcockroachdb/cockroach) are now dated. #14691 - dotnet dates come from Microsoft's releases index. deno and erlang dates come from their GitHub releases. #14692
- Every python version now has a date, and so do many more ruby versions (from ruby-lang.org, Maven Central for JRuby, and GitHub for TruffleRuby). Rust's
stable,betaandnightlychannels are dated too. With an explicit past cutoff,rust@stableresolves to the newest stable release that is old enough, andbeta/nightlyresolve to a dated build from before the cutoff. #14697 - The dart, flutter, nim, julia, nomad-pack, sentinel, tfc-agent, android-cli, cursor-agent and twg registry tools now report dates. #14698
All by @jdx.
-
Version lists for more backends come from the mise-versions host.
npm:,pipx:,cargo:,gem:,go:,dotnet:andspm:tools now list versions from mise-versions, like other registry tools, instead of going to their own source. So do http/s3 tools with aversion_list_url. If you redirect a source, mise still lists from that source directly. That covers a custom npm registry ornpm.shell_out,pypi.registry_url, a non-defaultGOPROXY,cargo.registry_name, a custom gem source,dotnet.registry_url, S3 endpoint overrides, and local listing options. conda always lists from its channel. The host cache TTL now follows the tool'sminimum_release_age. To list everything from the source, setMISE_USE_VERSIONS_HOST=0. #14700 (@jdx)
Added
-
PowerShell installer for Windows. It's published with each release as
install.ps1and served from mise.run at/powershelland/pwsh, so you pipe it intoiexwithirm. It works on PowerShell 5.1+ and doesn't need admin rights. It installs the newest release that is at least 24h old, orMISE_VERSIONif set. The download is verified againstSHASUMS256.txtfrom GitHub Releases.mise.exeandmise-shim.exego into~\.local\bin, and that directory is added to your userPath. Re-running it upgrades an existing install. Options includeMISE_INSTALL_PATH,MISE_INSTALL_MODIFY_PATH=0,MISE_INSTALL_SHIMS_PATH=1andMISE_INSTALL_FROM_GITHUB=1. See the "Installing mise" docs for the full command. #14660 (@jdx, @lhs-12) -
read_json(),read_yaml()andread_toml()template functions parse a file so a template can use a value from it. This saves copying a version frompackage.jsonorPulumi.yamlintomise.tomlby hand. Relative paths resolve from the config file's directory. A missing key is an error unless you add| default(value="..."). Likeread_file(), these functions need a trusted config, and they don't work in safe mode,.miserc.tomlor OCI dotfile templates. #14705 (@jdx, @edahlseng)[tools] node = "{{ read_json(path='package.json')['volta']['node'] }}" pulumi = "{{ read_yaml(path='Pulumi.yaml')['requiredPulumiVersion'] }}"
-
dotnet@ltsanddotnet@stsresolve to the newest SDK in the current LTS or STS channel, using Microsoft's release index. Preview, go-live and end-of-life channels are skipped. Altsalias you define in[tool_alias.dotnet.versions]still takes precedence. Runtime-only installs still need an exact version. #14683 (@jdx) -
mise bootstrap --prune-dotfilesremoves dotfiles that are no longer deployed, the same waymise dot apply --prunedoes, somise bootstrap --upgrade --prune-dotfileshandles everything in one run. The prune runs at the end of the dotfiles phase. It respects--dry-run,--yesand--skip dotfiles. Copies you edited are left in place. #14681 (@jdx, @thernstig) -
dotfiles.windows_symlinks(defaultfalse) makessymlinkandsymlink-eachcreate real file symlinks on Windows. With it on, apply fails if Windows refuses to create a link, instead of silently copying. To create symlinks, Windows needs Developer Mode or an elevated shell. If you turn the setting back off,mise dot unapplyneeds--forceon entries that still hold links. #14682 (@jdx)[settings.dotfiles] windows_symlinks = true
-
http:tools can report release dates with the newversion_date_exproption. It maps versions to dates from theversion_list_urlresponse. Useversion_date_urlto read the dates from a different URL, andversion_date_next_exprto follow paged listings (same host only). Dates can be RFC 3339,YYYY-MM-DDor HTTP dates. #14696 (@jdx) -
vfox plugins can report release dates. An
AvailableorBackendListVersionshook can returncreated_at(RFC 3339) for each version. Plain version strings still work. #14695 (@jdx) -
mise tasks -ais a short alias formise tasks --all. #14674 (@williamsjokvist)
Fixed
mise fmtno longer breaks multiline inline tables (TOML 1.1). It used to pull comments out of the table and drop indentation. Now it leaves these tables exactly as written. #14670 (@jdx, @ponko2)- If one task's
dirtemplate fails to render, other task commands keep working. Before, every command failed, includingmise tasks validate. Nowmise tasks validatereports the broken task asinvalid-directory-template, and only running that task fails. #14680 (@jdx) - aqua tools now find their binaries in macOS universal archives, such as fastfetch 2.70.0. #14665 (@jdx)
- npm: lifecycle scripts approved by
allow_buildsnow run even when~/.npmrcsetsignore-scripts=true. #14661 (@jdx) - npm:
mise lockno longer fails when your aube config sets a different default lockfile, such aspnpm-lock.yaml. #14659 (@jdx) .7ztool archives now extract when mise's data directory path contains.., for example in a localized mise setup. #14657 (@jdx, @sevenc-nanashi)- The
mise-shim.exein the Windows release now keeps its version tag, somise doctorandmise reshim --forcestop reporting it as outdated. The warning goes away after you update and runmise reshim --force. #14656 (@jdx) - On Windows,
symlink-eachdotfiles messages and dry-run previews now say the files were copied rather than symlinked. #14654 (@jdx, @lhs-12) - Rust: with a
RUSTUP_DIST_SERVERmirror configured and GitHub unreachable, mise now lists thestable,betaandnightlychannels instead of failing, sorust@stableinstalls through the mirror. #14662 (@jdx) - On Windows,
http:installs of large archives no longer fail with "Access is denied" while antivirus is scanning the extracted files. mise now retries the final move for up to about a minute. #14703 (@jdx)
Documentation
- New mise.toml playground: a schema-aware editor with hover help, completion and error checking. You can share a config as a link. Every
mise.tomlexample in the docs now shows hover help on its keys. #14673, #14686 (@jdx) - The mise.toml reference is now a searchable key explorer grouped by topic. Each key shows its type, default and a real example. Nearly every key now has a description, and these also appear in
mise config explain. #14687, #14690, #14688 (@jdx) - The fnox secrets page now covers setup, CI and migration. The dotnet page explains how private feeds authenticate. #14675, #14679 (@jdx)
Full Changelog: v2026.10.14...v2026.10.15
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.