chore(deps): update dependency jdx/mise to v2026.8.5 - #87
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 1, 2026 14:51
b80483b to
e746981
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
April 3, 2026 13:52
7bca63d to
78cde9b
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
April 6, 2026 13:24
71dfc7c to
2c2deda
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
April 9, 2026 10:49
9807261 to
23e68ca
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 10, 2026 14:16
23e68ca to
5dbfe28
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 11, 2026 20:28
5dbfe28 to
0b27243
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 12, 2026 13:32
0b27243 to
4772b7b
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 13, 2026 13:17
4772b7b to
08413f6
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 16, 2026 10:41
08413f6 to
7f4fed8
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 16, 2026 17:43
7f4fed8 to
d106507
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 17, 2026 15:11
d106507 to
0d1ebc0
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 18, 2026 17:00
0d1ebc0 to
29746be
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 27, 2026 13:23
8f3ef1a to
647eacb
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 28, 2026 17:43
647eacb to
72020a7
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 29, 2026 16:37
72020a7 to
fd1ed23
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 29, 2026 23:24
fd1ed23 to
edf5298
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 30, 2026 16:05
edf5298 to
1d8da69
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
May 10, 2026 12:44
406abab to
ac5e40c
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
May 11, 2026 18:01
ac5e40c to
a88eca2
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
May 14, 2026 21:39
ce968d3 to
ca638bd
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.3.17→2026.8.5Release Notes
jdx/mise (jdx/mise)
v2026.8.5: : PyPy on the precompiled path, Node source patches, and a broad batch of fixesCompare Source
This release lets mise install PyPy on the precompiled path (including on Windows), adds Node source-build patching, and lands a wide set of fixes across config precedence, install hooks, version pinning, and the Rust, conda, and vfox backends.
Added
python: PyPy can now be installed on the precompiled path — when
python.compile=false, and unconditionally on Windows, where PyPy versions previously never appeared inmise ls-remote pythonand could not be installed at all. mise reads the upstreamdownloads.python.org/pypyindex, downloads and extracts the correct archive, runsensurepip, and records a blake3 checksum in the lockfile on first install (PyPy publishes no machine-readable checksums). (#11846 by @JamBalaya56562)mise install python@pypy3.10-7.3.17node: add
node.apply_patches(MISE_NODE_APPLY_PATCHES) to apply local or remote patches to the Node source build before./configureruns, mirroringruby.apply_patches. It accepts a newline-separated list of patch files or URLs. Strip level is auto-detected from git- or diff-style markers, and patches are recorded in the lockfile since they change the built artifact. If patches are set but a precompiled Node was installed, mise now warns instead of silently dropping them. (#11850 by @JamBalaya56562)Fixed
~/.config/misenow matches the documentation —config.local.tomloverridesconfig.toml, which overridesconf.d/*.toml. Previously the order was reversed for[settings],[tools], and[env]when~/.config/misewas outside the cwd walk. (#11906 by @halms)mise usenow updates a single tool version in place within a standard[tools.<name>]table, preserving comments, key ordering, whitespace, and nested option tables instead of collapsing the table to inline form. (#11848 by @Marukome0743)preinstallandpostinstallhooks now run from the owning project root, so relative paths resolve consistently even whenmise installis started from a subdirectory. The invocation directory remains available throughMISE_ORIGINAL_CWD. (#11857 by @jdx)mise use --pinnow prefers an exact available release when pinning, instead of reusing a more-specific installed fuzzy match. For examplemise use --pin erlang@27.3will pin27.3if that exact release exists remotely, rather than depending on which versions happen to be installed. (#11838 by @Marukome0743)[task_templates.*]definition or a monorepo task default now correctly invalidates affected tasks, so stale outputs are no longer marked up to date after a template change. (#11858 by @jdx)jdtlsthat expand${CONDA_PREFIX}and rely on activation scripts. Dependency executables stay isolated from the user's shellPATH. (#11855 by @Marukome0743)disable_tools = ["python"](and allowlist forms likeenable_tools = ["node"]) now also suppress the_.python.venvdirective, so a disabled Python no longer leaves its virtualenv activated onPATH. (#11885 by @JamBalaya56562)MISE_TOOL_OPTS__*(with legacyRTX_TOOL_OPTS__*aliases), so hooks readingos.getenv("MISE_TOOL_OPTS__...")see the resolved options during install, uninstall, exec-env, and lock paths. (#11884 by @Marukome0743)github_releasepackage-type overrides from version and platform overrides are now applied, fixing installs such as recent Claude Code releases that failed with "relative URL without a base". (#11901 by @Marukome0743)Changed
Documentation
_.sourcePATH handling. (#11889 by @jdx)Registry
Breaking Changes
disable_tools = ["python"]while still keeping a_.python.venvactivated, that virtualenv will no longer be activated. The existing venv remains on disk and is restored automatically when Python is re-enabled. (#11885)Full Changelog: jdx/mise@v2026.8.4...v2026.8.5
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.8.4: : Cross-backend ls, semver ordering, and bootstrap cask pruningCompare Source
This release adds explicit semantic version ordering for major backends, teaches
mise lsandmise install --forceto work across backends, extends bootstrap package management with platform filters and cask pruning, and lands a broad batch of task, config, and platform-specific fixes.Added
backend: tools can now declare an explicit
version_order(sourceorsemver) so thatlatestand version-prefix resolution follow semantic precedence instead of source/chronological order. This is enabled for Aqua, GitHub, GitLab, Forgejo, and HTTP backends, and fixes cases where a backport or older release line was picked ahead of a newer version (for example neo4j, victoria-metrics, go-getter, talosctl, rpk, and tealdeer).mise ls-remotecontinues to show upstream source order. (#11774 by @jdx)ls:
mise ls <name>now matches a tool installed from multiple backends. Previously, installing a tool from both its registry backend and, say, acargo:orubi:build would show only one of them undermise ls <name>even though both were on PATH. Spelling out a backend (e.g.mise ls ubi:jqlang/jq) still narrows to that single backend. (#11822 by @JamBalaya56562)install:
mise install --forcenow works without tool arguments, reinstalling every configured, OS-supported tool (or the monorepo union with--monorepo). (#11802 by @Marukome0743)upgrade: add an
upgrade.auto_prunesetting (defaulttrue) that controls whethermise upgraderemoves the version it replaced, plus a--pruneflag to force removal on for a single run when the setting is off. Useful when a mise-managed interpreter backs a virtualenv you do not want deleted on unattended upgrades. (#11788 by @JamBalaya56562)bootstrap:
mise bootstrap packages prune --manager brew-caskcan now conservatively remove mise-owned Homebrew casks that are no longer declared in[bootstrap.packages]. Removal is gated by install-time receipt metadata, fingerprint checks, and ownership validation, and Homebrew-owned, pkg, lifecycle, drifted, or shared casks are skipped with an explicit reason. (#11810 by @jdx)bootstrap:
[bootstrap.packages]entries can now use table form with aversionand[tools]-styleosselectors, so a single config can target macOS-only casks and Linux fonts. Platform-incompatible packages surface as unavailable in status output instead of aborting the run, while explicit requests for unsupported packages still error. (#11809 by @jdx)brew: the
brew-caskmanager now supports installing font casks directly from git URLs, including selecting a branch and staging files from a subdirectory. (#11781 by @roele)aqua: relative
aqua.registriesentries in a config file are now resolved against that config's root, so aregistry.yamlcommitted inside a project repository can be referenced without a machine-specific absolute path. (#11804 by @JamBalaya56562)spm:
spm:installs can now be pinned to a commit viarev:<commit>(and compatibleref:<commit>), building from source. (#11815 by @Marukome0743)generate: generated git hooks can now carry extra mise flags. Anything after
--is inserted betweenmiseandrun, so a hook can target config in a subdirectory or set other global flags. (#11820 by @JamBalaya56562)Fixed
mise watchwith no task name now runs thedefaulttask, matchingmise run, instead of failing with "No tasks specified". (#11836 by @Marukome0743)--silentand--log-levelare now forwarded into the generated activation hook, so per-directoryhook-envoutput can actually be silenced. (#11831 by @JamBalaya56562)sopsCLI (sops.rops = false) are no longer skipped when no age key is present, so KMS, Vault, PGP, and other key services work in non-strict mode. (#11834 by @Marukome0743).mise-bins, fixing tools such asconda:postgresqlandconda:zstdthat previously failed to start with a missing-DLL error. (#11825 by @JamBalaya56562)-2,-3, …) instead of always using the superseded-1build. (#11807 by @JamBalaya56562)//. (#11782 by @williamsjokvist)!=operator are accepted. (#11828, #11832 by @JamBalaya56562)--filealias where-fmeans--force, andignored_config_pathsnow matches on Windows. (#11789, #11818 by @JamBalaya56562)go.set_gopathdeprecation message is corrected. (#11791, #11799 by @JamBalaya56562, #11835 by @jdx)go listdiagnostics are kept out of default output. (#11816 by @JamBalaya56562)patargument is honored on v1trim_start/trim_end. (#11811 by @JamBalaya56562)sub-N:version prefixes is resolved before subtracting. (#11796 by @JamBalaya56562)-stablesuffix. (#11808 by @JamBalaya56562)Documentation
task_config.shellin thetask.shelldefaults (#11775 by @pynappo).Registry
New Contributors
Full Changelog: jdx/mise@v2026.8.3...v2026.8.4
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.8.3: : Flatpak, Font Casks, and Task Precedence FixesCompare Source
This release expands bootstrap package management with per-user Flatpak support and Linux font casks, adds a per-tool pipx registry option and a shim safety setting, and lands a batch of task precedence, lockfile, and Python fixes.
Added
bootstrap: manage per-user Flatpak installations with a new
flatpak-userpackage manager. The existingflatpak:<id>entries stay system-scoped, and you can now declare both scopes in the same config, including the same application ID. (#11757 by @jdx)brew: the built-in
brew-caskmanager now works on Linux for font-only casks, installing fonts under$XDG_DATA_HOME/fontsvia Linuxbrew. Non-font casks on Linux fail with a clear unsupported-platform error. (#11758 by @jdx)pipx: add a per-tool
registry_urloption so version listing andlatestresolution can target a private PyPI-style index without changing the globalpipx.registry_url. The latest-version cache is keyed by registry URL to avoid cross-registry reuse. (#11754 by @jdx)shim: add a
not_found_system_fallbacksetting (MISE_NOT_FOUND_SYSTEM_FALLBACK, defaulttrue). Setting it tofalseprevents a shim for a missing tool from silently falling back to a same-named binary onPATH, failing loudly instead — useful for hardened environments that pin an explicit allowlist of tools. (#11755 by @richid)Fixed
[tasks.<name>]definitions now take precedence over a same-named task from an included TOML file instead of being silently discarded. Metadata-only inline blocks overlay the included command rather than replacing it. (#11734 by @jdx)mise.local.tomlnow overlays the command-bearing definition from a lower file instead of wiping out itsrun. Command-bearing higher-precedence tasks still fully replace the lower one. (#11745 by @jdx)double_dash="required"again accept values passed after--, which had regressed to being rejected. (#11729 by @jdx)postinstallare now applied to explicitly requested runtime versions (e.g.mise install solidity@0.8.2) that carry registry defaults, instead of being skipped. (#11550 by @risu729)lockfile = truenow creates missing project lockfiles duringmise use,mise install, and upgrade flows. An unset setting continues to update existing lockfiles only. (#11746 by @jdx)mise locknow preserves the python-build-standalone artifact already recorded for each platform instead of churning the lockfile to the newest build. Usemise lock --bumpto advance the PBS build explicitly. (#11747 by @jdx)minimum_release_agenow use GitHub'spublished_attimestamp rather than the commitcreated_at, so a newly published release pointing at an older commit no longer bypasses the filter. Applies across Aqua, GitHub, Ubi, SPM, Pipx, and GitHub-backed core tools. (#11756 by @jdx)mise usenow keeps an already-sorted[tools]table alphabetically ordered. (#11713 by @jdx)~in thehomesetting. (#11752 by @xqm32)npm link <package-name>(and itsnpm lnalias) now triggers an auto-reshim, since it installs a package globally. (#11748 by @cheezmil)minimum_release_agewarning during shell completions. (#11727 by @beisenherz)New Contributors
Full Changelog: jdx/mise@v2026.8.2...v2026.8.3
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.8.2: : Declarative System BootstrapCompare Source
This release turns
mise bootstrapinto a full declarative host-provisioning system: alongside packages, mise can now converge privileged files, Linux users and groups, systemd services, Docker Compose projects, and firewall rules — all with plan/apply/status workflows, secret handling, and the ability to run over SSH against remote hosts. It also makes Ruby'sruby.compile=falsea strict precompiled-only mode and lands a batch of install and lockfile fixes.Highlights
mise bootstrapgains a Terraform-style declarative model. A newmise bootstrap planpreviews changes with table or JSON output and detailed exit codes, and each resource type has its ownapply/statuscommands that converge only when something actually differs.mise bootstrap remote, including automatic detection of the target's OS/arch/libc and signature-verified download of the matching mise binary.Added
mise bootstrap planpreviews what bootstrap would change before applying, with table or--jsonoutput and optional--detailed-exitcode(0 = no changes, 2 = changes, 1 = error). Resources have stable identities, dependency graphs, and validation for duplicates, missing dependencies, and cycles. (#11669 by @jdx)[bootstrap.files]and[bootstrap.directories], with content (inline or from a source), ownership, mode, and explicitpresent/absentstate. Writes are atomic, removal is opt-in (and requiresrecursive = truefor non-empty directories), and privileged work runs through hidden helpers that never expose file content in argv or logs. (#11674 by @jdx)[bootstrap.secrets]references sensitive values through environment variables so nothing is stored in config, and managed files withtemplate = truecan render them via{{ secret(name="...") }}.mise bootstrap secrets statusreports availability without revealing values, and--prompt-secretsprompts securely for anything missing. (#11680 by @jdx)[bootstrap.users]and[bootstrap.groups], with create/update/remove, supplementary groups, home handling, and explicitstate = "absent". Accounts converge before the files that reference them, and UID/GID collisions fail closed. (#11681 by @jdx)[bootstrap.services]for running/stopped, enabled/disabled, and masked state. Managed files and directories can setnotifyto triggerreload,restart, orreload_or_restarthandlers, but only after a real file change. (#11688 by @jdx)[bootstrap.compose]for running, stopped, and absent states, with pull/build/recreate/wait policies, one-shot services, orphan/volume/image removal, and explicit dependencies. Convergence compares live container runtime and health to the rendered Compose model (Compose v2 only). (#11689 by @jdx)[bootstrap.linux.firewall]with nftables, firewalld, and UFW backends (backend = "auto"). Includes SSH-lockout protection (default-deny requires a covering allow rule orallow_lockout = true), drift detection, and preservation of undeclared rules unlessexclusiveis set. (#11694 by @jdx)mise bootstrap remote, targeting a named[bootstrap.remote.hosts]inventory or ad-hocuser@hosttargets. mise archives and stages your project, provisions a compatible mise binary on the host, runs bootstrap with forwarded flags, and cleans up staging afterward. (#11690 by @jdx)mise_bin,remote_mise, orbootstrap_command. (#11693 by @jdx)Changed
ruby.compile = falseis now a strict precompiled-only mode, matchingpython.compile. Installs error withno precompiled ruby foundinstead of silently falling back to ruby-build, and version listings (mise ls-remote ruby, fuzzy resolution) are filtered to versions that actually have a precompiled binary for your platform. Previouslyfalsewas a no-op after precompiled binaries became the default in 2026.8.0. Unset andcompile = trueare unchanged; Windows is unaffected. (#11710 by @jdx)task.auto_infer(e.g.task.auto_infer = ["node"]) instead of running whenever experimental features are enabled. Explicit mise tasks always take precedence over inferred package scripts on name and alias collisions. (#11706 by @jdx)Fixed
:any_skip_relocationbottles no longer leave unresolved@@HOMEBREW_*@@placeholders in scripts and config files. That tag now only skips binary linkage relocation while text placeholders are still replaced. (#11665 by @jdx)mise lock --bumpnow errors instead of writing an incomplete lockfile when a version bump would drop platform coverage that the previous locked version had. Best-effort skips are retained for platforms a tool never supported. (#11664 by @jdx)upload_time_iso_8601timestamp instead of the timezone-naiveupload_time, which previously made freshly released packages appear up to ~24h younger and over-gated them underminimum_release_age. (#11662 by @Guria)pacman -Qis now parsed underLC_ALL=Cso missing-package detection works in non-English locales; previously[bootstrap.packages]could bail on a translated "was not found" message. (#11673 by @rarandeyo)incompletemarkers when an external link (from uv, nvm, pyenv, nodenv, or Homebrew) is confirmed healthy, somise whereno longer treats a working external version as incomplete after an interrupted install. (#11172 by @risu729)--no longer hijacks task argument completion after usage v5.mise run <task> -- <TAB>again offers the task's declared choices instead of falling back to filenames, while still forwarding extra arguments. (#11711 by @jdx)binsmetadata to pick the correct provider before falling back to incidental executables, fixing cases where invoking thenpmshim could run Node's bundled npm instead of the configured npm version. (#11666, #11671, #11676, #11677, #11678 by @jdx)New Contributors
Full Changelog: jdx/mise@v2026.8.1...v2026.8.2
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.8.1: : Task Cache Goes Remote, Affected Tasks, and Config ErgonomicsCompare Source
This release rounds out mise's experimental task artifact cache with size/age limits, inspection tooling, and a full local-plus-remote cache backend (including authenticated CI caching), adds experimental
mise run --affectedfor monorepos, and lands a batch of config, upgrade, and install fixes.Highlights
mise run --affectedruns only the tasks in monorepo projects touched by your Git changes, using workspace dependency graphs, global task inputs, and provider lockfile attribution to decide what is affected.--fileand--pathare interchangeable across the commands that write config, so you no longer have to remember which name each subcommand expects.Added
task: experimental
mise run --affectedselects and runs only the tasks in projects affected by Git changes, combining the workspace dependency graph,global_inputs, and provider lockfile diffs. Base and head revisions can be overridden with--affected-base/--affected-headorMISE_AFFECTED_*. Includes JSON output and an--explainbreakdown of why each task was selected. (#11590, #11587, #11589, #11591, #11593 by @jdx)task: remote task cache. A composite store layers local and remote backends, reading local first and promoting remote hits, then committing locally before mirroring writes so a remote failure never loses a local hit. Requests are hardened, verified, streamed, and support read/write access modes. (#11622, #11623, #11624, #11626, #11627 by @jdx)
task: authenticated remote cache. Credentials resolve in fixed precedence: an explicit bearer token, a global-only token file (
MISE_TASK_CACHE_REMOTE_TOKEN_FILE), then GitHub Actions OIDC whenMISE_TASK_CACHE_REMOTE_OIDC_AUDIENCEis set. HTTPS is enforced except for loopback development endpoints. (#11625, #11653 by @jdx)task:
task.cache_max_sizeandtask.cache_max_agesettings cap the task output cache independently of the global prune age, evicting least-recently-accessed entries after writes and rejecting expired entries on restore. (#11610 by @jdx)task: inspect and selectively clear the cache with
mise cache task <task>(table or--json, reporting stored size, restorable bytes, saved time, last access, and outputs) andmise cache clear --task <task>, which removes only that task's entries without touching your working-tree outputs. (#11604 by @jdx)task:
mise run --task-cache-explain <task>prints a structural breakdown of what feeds a task's cache key (input categories, counts, env/var names and presence, platform) without emitting secret-derived hashes, and works under--dry-run. Companion changes report cache miss reasons, cache statistics, resolved cache paths, and add JSON explanation output. (#11595, #11597, #11599, #11600, #11601 by @jdx)task: cache artifacts are now checksum-verified and cache declarations are audited on load. (#11605, #11617 by @jdx)
config:
--fileand--pathare now interchangeable across the commands that write config:mise use,mise set,mise unuse,mise unset,mise config get, andmise config set. (#11577, #11616, #11631, #11640 by @JamBalaya56562)mise use --file mise.local.toml node@22 mise set --path mise.local.toml FOO=barupgrade:
mise upgrade --no-prunekeeps the version being replaced instead of uninstalling it, so external references such as virtualenvs built from a mise-managed Python keep working. Also works with--bump. (#11639 by @JamBalaya56562)env: on Windows, mise now warns when the generated PATH exceeds the ~8191-character length at which
cmd.exesilently drops the variable, which otherwise makes every command appear unrecognized. (#11643 by @JamBalaya56562)vfox: Lua plugins gain
strip_components = 1onarchiver.decompressplus sortedfile.list,file.glob, andfile.move, letting plugins flatten versioned archive roots and rename executables portably without shelling out. (#11652 by @jdx)Fixed
{{ exec(...) | split(pat=': ') | last }}and selectors resolved from templates no longer fail config loading. (#11580 by @JamBalaya56562)--path <dir>is given, and no longer write the global config into aconf.ddrop-in. (#11571, #11609, #11633 by @JamBalaya56562)mise upgrade --bumpnow applies every eligible tool bump in the same config file instead of letting the last save overwrite earlier ones, and preserves successful bumps when another tool in the file fails to install. (#11572 by @Marukome0743)latestpointing at the removed version; mise rebuilds valid symlinks (or removes dangling ones) after cleanup. (#11579 by @Marukome0743)watchman-diagzipapp) now relocate correctly with long Linuxbrew prefixes. (#11632 by @Marukome0743)Documentation
node.mirror_urlexample. (#11615, #11637 by @jdx; #11642 by @JamBalaya56562; #11377, #11460 by @Bartok9)Full Changelog: jdx/mise@v2026.8.0...v2026.8.1
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.8.0: : 15% faster shims, multi-language workspaces, and precompiled RubyCompare Source
This release makes mise noticeably faster on Linux x64: shims have 15% lower latency, while config-aware commands are 8–11% faster in local release-to-release benchmarks. It also significantly expands the experimental monorepo task workflow with dependency inference across Cargo, uv (Python), Go, and Node workspaces, and makes precompiled Ruby binaries the default.
⚡ Performance: up to 15% lower latency
Official checksum-verified Linux x64 GNU binaries were compared on an AMD Ryzen 9 7950X3D using an isolated offline fixture with warm filesystem caches (20 warmups and 200 measured runs per command):
tasks lsenv -s bashcurrentsettings--helpversionregistryRelease downloads are smaller as well:
.tar.xz.tar.gz.tar.zstThe raw executable file is 2.5% larger because of the BOLT file layout, despite its smaller allocated sections and compressed artifacts. Shim dispatch was measured in two reversed-order 300-run rounds. These are whole-release results against v2026.7.18, so they include all changes between the releases rather than isolating BOLT alone.
Highlights
mise tasks graphdiscovers projects and internal dependency edges from Cargo, uv, Go, and Node workspace metadata without needing the underlying toolchain installed, and--explainattributes every project, edge, and task field to its source.Added
task: Cargo workspaces are now inferred for the task graph. mise parses root and member
Cargo.tomlfiles (nocargobinary required) to buildcargo:<package>projects and internal edges from normal, dev, build, target-specific, renamed, and inheritedworkspace = truepath dependencies, with provenance surfaced in graph output. (#11554 by @jdx)task: uv (Python) workspaces are inferred from
pyproject.toml. When[tool.uv.workspace]is present, member globs and exclusions defineuv:<package>projects and edges come from[tool.uv.sources]workspace = true/ localpathentries across main, optional, dependency-group, and legacy dev dependencies — again without invokinguvor Python. (#11556 by @jdx)task: Go workspaces are discovered from
go.workusedirectives and each module'sgo.mod, registering stablego:<module-path>projects without running thegobinary. Dependency ordering is supplied explicitly via[monorepo.projects]overrides. (#11559 by @jdx)task: workspace providers can now contribute task suggestions. The Node provider imports supported
inputs,outputs,cache, anddependsOnmetadata from matchingturbo.jsonentries for inferred package scripts, trackingturbo.jsonas a task definition source. Unsupported Turbo expressions are left unset. (#11543 by @jdx)task:
mise tasks graph --explainshows provider and metadata-source provenance for every inferred project, dependency edge, task, and provider-suggested field, and--jsonnow serializes the same attribution. Config overrides are labeled asconfigurationrather than misattributed to inference. (#11547 by @jdx)task:
mise watchgains a per-taskwatch.no_vcs_ignoreoption so tasks can watch sources that are excluded by.gitignore(such as generated files). VCS ignores stay enabled by default to avoid scanning broad build directories; one opted-in task enables it for the combined watch process. (#11535 by @Marukome0743)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.