Repository navigation
chore(deps): update dependency jdx/mise to v2026.10.22 - #56
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/jdx-mise-2026.x
branch
from
October 28, 2026 21:29
307dab4 to
0c45763
Compare
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.10.20→2026.10.22Release Notes
jdx/mise
v2026.10.22: : Project-scoped uninstall, JSONC dotfile merges, and node@lts moves to Node.js 26Compare Source
You can now uninstall only the tools the current project requests, and new
--no-globaland--projectflags replace the two different meanings--localhad. Dotfiles can merge into JSONC files like VS Code'ssettings.jsonand can seed a file once without overwriting later edits.node@ltsnow resolves to Node.js 26. The rest of the release adds anipv4_onlysetting, JSON output formise vars, and fixes for Windows, lockfiles, pruning and GitHub release listing.Added
mise uninstall --projectandmise ls --project.mise uninstall --projectremoves the installed versions requested by the nearest project's config files:mise.toml,mise.local.toml,conf.dfragments,.tool-versionsand idiomatic version files in that directory. Config in parent directories and global config is not included. It lists each version with the file that requests it and asks before removing anything.--yesskips the prompt, and--dry-runonly shows the list.mise ls --projectlists the same scope. Installs are shared between projects, so another project using the same version will need to reinstall it. #15079, #15081 (@jdx, @httpete-broadcom)--no-globalonls,outdated,upgradeandtasks ls. It selects tools or tasks from all non-global config, including parent directories, and does what--localdid on these commands. #15081 (@jdx)Dotfile merges into JSONC files. A
mergeentry can now edit files that contain comments and trailing commas, such as VS Code'ssettings.json. It keeps the file's comments, indentation and any keys the source doesn't set..jsonctargets are detected automatically. For other files, set the newformatkey (json,jsonc,tomloryaml). A.jsontarget withoutformatis still parsed as strict JSON. Merge sources that fail to parse now report the file path and the parse error. #15077 (@jdx, @TimonLukas)create_if_missingfor dotfiles.copy,templateand inlinecontententries withcreate_if_missing = truewrite the target only when nothing exists there. After that, local edits are left alone and do not count as drift inmise dot statusormise dot diff. If you delete the target, the next apply creates it again. This works for files that are filled in on each machine, such as local tokens. #15080 (@jdx, @thernstig)permissionson dotfilemergeentries. The mode is applied only when the merge creates the file. Files that already exist keep their mode. Merge entries for the same file must not set different modes. #15087 (@jdx, @thernstig)ipv4_onlysetting. Setipv4_only = true(orMISE_IPV4_ONLY=1) for networks where a host fails over IPv6, for exampledl.google.comreturning 404 or Sigstore TUF fetches failing. This applies to mise's own HTTP connections: downloads, version lookups, GitHub API calls, attestation verification and vfox plugins. External programs such asgit,npmand thenpm:backend's package manager still use the system resolver. The default isfalse. #15057 (@jdx, @Alby02)mise vars --jsonand--json-extended. Prints vars as JSON.--json-extendedalso includes the file each value comes from. Redacted values stay[redacted]. #15069 (@jdx, @artemklevtsov)mise shell --unset --all. Removes everyMISE_<TOOL>_VERSIONoverride from the current shell in one command, including ones you exported by hand. #15088 (@jdx, @wfouche)Bootstrap hook descriptions. A hook table can set
description, andmise bootstrapprints it instead of the hook's script. Without a description, mise prints$followed by the command's first line, cut to the terminal width.--verboseand--dry-runstill print the full script. #15106 (@jdx, @owpac)Debian packages from the mise APT repository now include Bash, Zsh and Fish completions. #15074 (@gilesw)
Registry: added an aqua backend for
oxfmt. #15092 (@scop)Changed
node@ltsnow resolves to Node.js 26, which entered Active LTS on 2026-10-28. It used to resolve to 24.lts/lithium(alsolts-lithium) selects the 26.x line. Aliases for older lines, such aslts/krypton, are unchanged. To stay on Node.js 24, pinnode@24ornode@lts/krypton. #15105 (@jdx)system_packages.elevate_with = ""now means "never elevate": package manager commands run as the current user. This helps on hosts without root, such as Termux. Before, an empty value fell back tosudo,run0ordoas. If the setting is unset, mise still picks an elevator fromPATH. #15049 (@jdx, @iliqiliev)Deprecated
--localonls,outdated,upgradeandtasks lsis deprecated in favor of--no-global. It still works and prints no warning for now. Warnings start in 2027.1.0, and the flag is removed in 2027.7.0.settings --localandlock --localare not affected. #15081 (@jdx)Fixed
mise pruneand automatic upgrade pruning used to keep every version of a tool while a process started through a runtime link such asinstalls/claude/latestwas running. They now keep only the version that process is running, so long-running sessions no longer stop old versions from being cleaned up. #15113 (@jdx)mise install pipx:<tool>no longer fails withmissing lockfile entrywhenlockfile_platformslists only the current platform. #15091 (@jdx, @drewbitt)github:be5invis/Iosevka, mise now retries with smaller pages of 30 and then 10 releases instead of failing. #15078 (@jdx)mise version --jsonno longer reports alatestolder than the running version, which happened with fresh or nightly builds because ofminimum_release_age. #15068 (@jdx)mise backends switchno longer fails withNo such file or directorywhen thelocks/directory next to it exists but is empty. Rollback after a failed switch also restores sidecar directories more reliably. #15060 (@zeitlinger)owner/repoform no longer printinvalid aqua toolrepeatedly. A name that no registry defines still fails withpackage not found. #15048 (@jdx, @trothwell).nvmrc -> .node-version, no longer prints anot readingwarning. Links to other files are still not read and still warn. #15058 (@jdx, @owpac)minimum_release_ageor--beforeare now logged at debug level instead of printing one warning per version. #15056 (@jdx, @owpac)GEM_HOMEand the executable path, so gems work when the install directory contains spaces or shell metacharacters. #15055 (@jdx)refthat is empty, isHEAD, or starts with-. This stops option injection into git, and these sources now follow the same rules as plain git repo sources. #14832 (@Huge)Documentation
New Contributors
Full Changelog: jdx/mise@v2026.10.21...v2026.10.22
💚 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.
v2026.10.21: : Easier dotfiles setup from a checkout or Stow packages, plusprune --forcefor casksCompare Source
You can now keep mise's global config inside your dotfiles checkout, and deploy Stow-style packages without writing a table for each one. Dotfiles also get new protections for template entries, and
mise bootstrap packages prunecan force-remove casks it cannot prove are unchanged. The rest of the release fixes bugs in monorepos, lockfiles and pypi locking.Added
Bootstrap from a dotfiles checkout with
--config-dir.mise bootstrap --fromaccepts--config-dir <path>. It links mise's config directory (~/.config/mise, or whereverXDG_CONFIG_HOME/MISE_CONFIG_DIRpoint) to that path inside the checkout, then bootstraps from it.config.toml,config.<env>.toml,conf.d/andmiserc.tomlin the repository all act as global config from the first run. After that,git -C ~/.dotfiles pull && mise bootstrapis enough, andmise use -gandmise dot addwrite into the checkout.The path must stay inside the checkout. The existing config directory must be missing, empty, or already that link; mise refuses anything else and leaves it alone.
--dry-runcreates no link. The docs now recommendmise dot track ~/.config/mise, which tracks the whole config directory rather than onlyconfig.toml. Files ending in.local.tomlstay on each machine. #15025 (@jdx, @lhs-12, @Mossop)Stow packages need no
[dotfile_groups]tables. If a name in[bootstrap] dotfile_groupshas no matching table but is a directory underdotfiles.root, mise treats it as a group with the default settings: that directory is deployed into~file by file. A table with the same name still overrides the defaults.mise dot add --group,mise dot unapply --groupand orphan reporting work for these groups too. #15025 (@jdx, @lhs-12, @Mossop)mise bootstrap packages prune --manager brew-cask --force. This removes mise-installed casks that prune skips because it cannot prove they are unchanged, such as self-updating apps, casks with install steps, and casks installed before mise recorded prune metadata. Without--force, prune now lists which casks--forcewould remove. A forced prune removes only what the receipt recorded and only while it is still where mise put it. It still skips casks Homebrew owns, casks without a mise receipt, interrupted installs and shared targets. Use--dry-runto preview. #14985 (@jacobbednarz)mise dot applywarns before overwriting an edited template target. If you edited a renderedtemplatetarget by hand since mise last wrote it,applynow warns that the edit will be overwritten and names the source to move it into.applystill overwrites the file, so unattended runs are not blocked. #15020 (@jdx, @owpac)Registry:
tuios(aqua:Gaurav-Gosain/tuios). #14990 (@Gaurav-Gosain)Fixed
mise dot addon amode = "template"entry now refuses by default. Before, it copied the rendered file over the template source, which deleted the template code and could write secrets pulled in withexec()into your repository in clear text. If you really want to capture the rendered file, pass--force. #15019 (@jdx, @owpac)symlink-eachapply failed, and the suggested--forcereplaced each source file with a link to itself. Apply now replaces the folded link with a real directory of links, without needing--force. #15025 (@jdx, @lhs-12, @Mossop)mise bootstrap --adopt --dry-runnow previews the whole config directory, includingconf.d/,config.<env>.tomland this machine'smiserc.local.toml. Before, it only previewedconfig.toml. #15025 (@jdx, @lhs-12, @Mossop)monorepo.config_roots = [".", "child"], a child with no tool overrides lost the tools it inherits from the root config and fell back to global versions. This brokemise install --monorepo --locked. Each declared root now loads its full config hierarchy. #15023 (@jdx, @swizzlr)mise run //app:taskfrom the monorepo root withMISE_LOCKED=1now looks up idiomatic version files such asapp/.node-versioninapp/mise.lock, not the root lockfile. #15021 (@jdx).nvmrcis a symlink to.node-version, the.node-versionfile is read again. mise still skips.nvmrcwith a warning, but that skip no longer hides.node-version. Before, the directory resolved no Node version (regression in 2026.10.19). #15006 (@jdx, @jjb)mise locknow re-resolves platform entries whose URL points to a different release than the lockedversion. This happens, for example, after Renovate bumps the version inmise.lock. Before,mise lockleft the old URL and checksum, andmise install --lockedthen refused the lockfile. #15010 (@jdx)mise locksweep with no tool arguments no longer aborts when apypi:/pipx:tool setsuvx_argsorpipx_args. That tool gets a warning and a version-only lock entry. Naming the tool explicitly still errors. #15030 (@jdx)pypi:tools,mise locknow checks that the resolved uv dependency graph can actually be installed withuv sync --frozen --no-build. If it can't, for example because a dependency has no wheel for the interpreter, mise warns and keeps a version-only entry. Before, mise wrote a graph that the nextmise installfailed on. #15031 (@jdx)mise doctorno longer lists uninstalledlazy = truetools as problems. The toolset list marks them(lazy), and--jsonadds"lazy": true. #15024 (@jdx)packslip:installs on shared CI runners no longer fail whenraw.githubusercontent.comreturns a 429. mise now asks mise-versions whether a repository publishes a release list, and falls back to GitHub when the mirror is unavailable,use_versions_hostis off, or aurl_replacementsrule applies. #15032 (@jdx)smol-machines/smolvm) installs through aqua again. mise now rewrites the absolute symlinks in its guest root filesystem as relative links inside the install directory. Links that escape the install directory are still rejected. #15015 (@jdx)New Contributors
Full Changelog: jdx/mise@v2026.10.20...v2026.10.21
💚 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.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.