Skip to content

chore(deps): update dependency jdx/mise to v2026.10.21 - #1036

Open
tbhb-dev-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jdx-mise-2026.x
Open

tbhb-dev-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jdx-mise-2026.x

Conversation

@tbhb-dev-renovate

@tbhb-dev-renovate tbhb-dev-renovate Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change Pending
jdx/mise patch 2026.10.19 → 2026.10.21 v2026.10.25 (+3)

Release Notes

jdx/mise (jdx/mise)

v2026.10.21: : Easier dotfiles setup from a checkout or Stow packages, plus prune --force for casks

Compare 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 prune can 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 --from accepts --config-dir <path>. It links mise's config directory (~/.config/mise, or wherever XDG_CONFIG_HOME/MISE_CONFIG_DIR point) to that path inside the checkout, then bootstraps from it. config.toml, config.<env>.toml, conf.d/ and miserc.toml in the repository all act as global config from the first run. After that, git -C ~/.dotfiles pull && mise bootstrap is enough, and mise use -g and mise dot add write into the checkout.

    mise bootstrap --from <dotfiles-git-url> --from-dir ~/.dotfiles --config-dir .config/mise

    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-run creates no link. The docs now recommend mise dot track ~/.config/mise, which tracks the whole config directory rather than only config.toml. Files ending in .local.toml stay on each machine. #​15025 (@​jdx, @​lhs-12, @​Mossop)

  • Stow packages need no [dotfile_groups] tables. If a name in [bootstrap] dotfile_groups has no matching table but is a directory under dotfiles.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 --group and orphan reporting work for these groups too. #​15025 (@​jdx, @​lhs-12, @​Mossop)

    [bootstrap]
    dotfile_groups = ["kitty", "nvim", "zsh"]
  • 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 --force would 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-run to preview. #​14985 (@​jacobbednarz)

  • mise dot apply warns before overwriting an edited template target. If you edited a rendered template target by hand since mise last wrote it, apply now warns that the edit will be overwritten and names the source to move it into. apply still overwrites the file, so unattended runs are not blocked. #​15020 (@​jdx, @​owpac)

  • Registry: tuios (aqua:Gaurav-Gosain/tuios). #​14990 (@​Gaurav-Gosain)

Fixed
  • Dotfiles
    • mise dot add on a mode = "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 with exec() into your repository in clear text. If you really want to capture the rendered file, pass --force. #​15019 (@​jdx, @​owpac)
    • Switching from Stow no longer destroys source files. When Stow had linked a whole directory into the source, symlink-each apply failed, and the suggested --force replaced 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-run now previews the whole config directory, including conf.d/, config.<env>.toml and this machine's miserc.local.toml. Before, it only previewed config.toml. #​15025 (@​jdx, @​lhs-12, @​Mossop)
  • Config and monorepos
    • With 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 broke mise install --monorepo --locked. Each declared root now loads its full config hierarchy. #​15023 (@​jdx, @​swizzlr)
    • Running mise run //app:task from the monorepo root with MISE_LOCKED=1 now looks up idiomatic version files such as app/.node-version in app/mise.lock, not the root lockfile. #​15021 (@​jdx)
    • When .nvmrc is a symlink to .node-version, the .node-version file is read again. mise still skips .nvmrc with 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)
  • Lockfiles
    • mise lock now re-resolves platform entries whose URL points to a different release than the locked version. This happens, for example, after Renovate bumps the version in mise.lock. Before, mise lock left the old URL and checksum, and mise install --locked then refused the lockfile. #​15010 (@​jdx)
    • A mise lock sweep with no tool arguments no longer aborts when a pypi:/pipx: tool sets uvx_args or pipx_args. That tool gets a warning and a version-only lock entry. Naming the tool explicitly still errors. #​15030 (@​jdx)
    • For pypi: tools, mise lock now checks that the resolved uv dependency graph can actually be installed with uv 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 next mise install failed on. #​15031 (@​jdx)
  • Other
    • mise doctor no longer lists uninstalled lazy = true tools as problems. The toolset list marks them (lazy), and --json adds "lazy": true. #​15024 (@​jdx)
    • packslip: installs on shared CI runners no longer fail when raw.githubusercontent.com returns 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_host is off, or a url_replacements rule applies. #​15032 (@​jdx)
    • SmolVM (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.

v2026.10.20: : Chocolatey packages, systemd user units, and version_regex for release tags

Compare Source

Bootstrap can now install Windows packages with Chocolatey, manage systemd user units that a package already ships, and register launchd launch events. Release-based backends can filter tags with version_regex, and mise completion supports Nushell. The rest of the release fixes lockfile, OCI, dotfiles, shim and Windows bugs.

Added
  • Chocolatey package manager for bootstrap. You can declare choco: packages in [bootstrap.packages] next to winget and scoop. Chocolatey installs packages machine-wide, which covers tools like Docker Engine and the Visual Studio build tools. It only works on Windows when choco is on PATH, and choco: entries are skipped on other platforms. status works without elevation, but apply and upgrade need an elevated terminal. Mise treats reboot-required exit codes (1641, 3010) as success and prints a warning. state = "absent", import and prune are not supported yet. #​14978 (@​jdx)

    [bootstrap.packages]
    "choco:git" = "latest"
    "choco:visualstudio2022buildtools" = "117.12.0"
  • Manage existing systemd user units from [bootstrap.services]. On Linux, an entry with scope = "user" and no command or builtin now manages a unit that already exists, such as one installed by a package. Mise runs systemctl --user against that unit and does not write a dev.mise.* unit. state, enabled and masked work the same way as for system services. Options that define a service, such as command, environment or restart, are rejected for these entries. Before, this configuration was always an error. Now, if you leave out command by mistake, mise reports a missing unit. #​14980 (@​jdx)

    [bootstrap.services.gnome-keyring-daemon]
    scope = "user"
    state = "running"
    enabled = true
  • launchd launch events. macOS LaunchAgents defined in bootstrap can now set LaunchEvents, for example to react when a USB device is added or removed. #​14992 (@​deecewan)

  • Let Homebrew manage casks that mise installs. With homebrew_metadata = true under [bootstrap.brew], mise writes Homebrew's cask metadata after it installs a brew-cask package. brew upgrade, brew outdated and brew doctor then recognize the cask, and from then on mise leaves it to Homebrew. This is off by default. #​14929 (@​jdx, @​owpac)

  • version_regex tool option for github, gitlab and forgejo backends. Only release tags that match the regex are listed, resolved or installed. This helps with repositories that publish releases that aren't versions of the tool. If you also set version_prefix, a tag must start with the prefix and match the regex. An invalid pattern is reported as an error. The registry also adds blaze, which uses this option. #​14984 (@​jdx)

    [tools]
    "github:indexable-inc/blaze" = { version = "latest", prerelease = true, version_regex = '^(v\d+\.\d+\.\d+|nightly)$' }
  • Nushell completions. mise completion nu (or nushell) now works, including --install. #​14999 (@​jdx, @​briankchan)

    mise completion nu > ~/.config/nushell/completions/mise.nu
  • Templates in settings.dotfiles.root. For example, root = "{{ mise_config_dir }}/home" now resolves to a real path. Before, the template text was used as a literal path. A relative result resolves against the config root. #​14969 (@​jdx, @​ponko2)

  • jactionlint in the registry now prefers the packslip backend, then aqua, then github. #​14947 (@​sahidvelji)

Changed
  • system_packages.elevate_with is now a global-only setting. This setting names the program mise runs instead of sudo. Now only global config or MISE_SYSTEM_PACKAGES_ELEVATE_WITH can set it. If a project's mise.toml sets it, mise ignores the value and prints the usual warning. #​14972 (@​jdx)
  • mise self-update no longer replaces a mise that WinGet installed, because updating it in place breaks WinGet's management of the package. Instead, mise tells you to run winget upgrade jdx.mise. --force and MISE_SELF_UPDATE_AVAILABLE=true still override this. #​14977 (@​jdx)
  • If a project config sets write_targets.*, mise now warns that the value is ignored only when a write would have used it (mise use --global, mise dot add, ...). The warning names the file that mise writes to instead. The bootstrap docs also have a new section on keeping global config in a dotfiles repository. #​14973 (@​jdx)
Fixed
  • Lockfiles
    • mise lock can now add tools that are missing from the lockfile when tool_config.locked = true. Before, it failed with an error telling you to run mise lock. This affected Renovate bumps, for example. #​15003 (@​jdx, @​staticaland)
    • mise lock no longer resolves a tool, or warns about it, for platforms that the tool's os option excludes. #​14959 (@​jdx)
    • When the global config directory is a symlink, npm sidecars now stay in one location. Before, they switched between locks/ and .mise/locks/ depending on the working directory. #​14961 (@​jdx)
    • When mise lock or auto-locking downloads a vfox artifact, it now sends the headers from the plugin's PreInstall hook. Before, private artifact repositories returned a 401. The headers go only to the plugin's origin and are never written to mise.lock. #​15002 (@​jdx, @​carlosemart)
    • For a stale backend lock entry in the global lockfile, the warning now suggests mise backends switch --global <tool>. Before, the suggested command didn't work. #​14976 (@​jdx, @​jc00ke)
  • Bootstrap
    • mise bootstrap --from now finds git when it was just installed outside the startup PATH, such as Homebrew in /opt/homebrew/bin on a fresh Mac. #​14919 (@​pmmmwh)
    • [bootstrap.compose] services that use network_mode: service:X, ipc, pid or volumes_from no longer always report update. #​14958 (@​jdx, @​thurstonsand)
    • Cask apps are now staged in a hidden directory, so launchers such as Raycast no longer list them under a Name.mise-tmp-<hash> name. #​15001 (@​jdx, @​kyong0612)
  • OCI images
    • Tools whose backend comes from [tool_alias] are now written to the image config under their resolved backend, so they still resolve inside the container. #​14971 (@​jdx, @​artemklevtsov)
    • System package layers keep absolute symlink targets unchanged, and mise no longer prints false "dangling" warnings for links such as /etc/alternatives/*. #​14968 (@​jdx)
  • Dotfiles
    • mise dot status now shows the path of the local history repository, and mise dot track explains when it writes a tracking entry next to an existing copy/symlink/template entry. The docs now cover moving from a symlinked dotfiles repository to tracking. #​14979 (@​jdx)
    • A relative mise dot add --source path now resolves from the current directory. #​14983 (@​jdx, @​sahidvelji)
    • On Windows, mise now retries git write-tree when Windows refuses to write a loose object. #​15000 (@​jdx)
  • Shims and shell
    • A concurrent reshim no longer briefly removes the shared command-wrappers directory. Before, a process that ran a wrapper during that window could fail with ENOENT. #​14931 (@​HackingGate)
    • A stale or undecodable __MISE_SESSION no longer makes mise hook-env print cannot install provided ErrorHook at every prompt. #​14963 (@​jdx)
    • On Windows, hook-env no longer re-checks the health of large npm: tool trees on every prompt. The result is cached until the install changes. #​14960 (@​jdx)
  • Other
    • When decrypting sops, mise no longer finds its own sops shim on PATH and recurses back into itself. It skips mise shims and keeps looking for a real sops binary. #​14801 (@​shuaiyafei)
    • Tera filters on version in tool option templates now work, for example {{ version | replace(from='-x', to='') }} in an http URL. If an expression mixes version with env or vars, the whole expression is now rendered at install time and can no longer see env or vars. #​14967 (@​jdx)
    • netrc files can now contain # comment lines. #​14964 (@​jdx)
    • mise doctor no longer warns about a tool installed with an explicit backend that the registry lists for that tool. Its project output is now colored too. #​14965, #​14970 (@​jdx, @​Tsafaras)
    • On Windows, when a task fails, mise now stops sibling tasks that run through Git Bash instead of waiting for them to finish. The same applies to Ctrl-C and timeouts. #​14966 (@​jdx, @​MareStare)
Documentation
New Contributors

Full Changelog: jdx/mise@v2026.10.19...v2026.10.20

💚 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)

  • Branch creation
    • "on sunday"
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@tbhb-dev-renovate
tbhb-dev-renovate Bot requested a review from tbhb as a code owner November 1, 2026 05:58
@tbhb-dev-renovate
tbhb-dev-renovate Bot force-pushed the renovate/jdx-mise-2026.x branch from a3abe9e to 862c433 Compare November 1, 2026 13:15
@tbhb-dev-renovate tbhb-dev-renovate Bot changed the title chore(deps): update dependency jdx/mise to v2026.10.20 chore(deps): update dependency jdx/mise to v2026.10.21 Nov 1, 2026
Signed-off-by: tbhb-dev-renovate[bot] <289255489+tbhb-dev-renovate[bot]@users.noreply.github.com>
@tbhb-dev-renovate
tbhb-dev-renovate Bot force-pushed the renovate/jdx-mise-2026.x branch from 862c433 to e5c19fe Compare November 1, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants