Skip to content

Commit 3ad84d4

Browse files
chore(deps): update mise to v2026.8.0 (#2364)
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mise](https://redirect.github.com/jdx/mise) | minor | `v2026.7.5` → `v2026.8.6` | --- ### Release Notes <details> <summary>jdx/mise (mise)</summary> ### [`v2026.8.6`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.6): : Resumable downloads, richer Homebrew casks, and monorepo task fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.8.5...v2026.8.6) This release adds resumable HTTP downloads, expands Homebrew cask support, and lands a large batch of fixes across tasks, config, install, and platform-specific behavior — with a particular focus on monorepos and Windows. #### Highlights - Interrupted artifact downloads now resume instead of restarting from zero, and more transient network failures (including HTTP/2 `REFUSED_STREAM`) are retried automatically. - The Homebrew cask backend gained structured symlinks, generic artifacts, and copy/installer flight steps, closing several gaps in cask installation. - A wide round of monorepo task, config precedence, and Windows path handling fixes. #### Added - **http:** interrupted downloads now resume via HTTP Range requests when a strong ETag or Last-Modified validator is available, keeping validated partial files across retries and mise invocations instead of re-downloading from byte zero. mise falls back to a clean restart when validators do not match, and abandoned partials expire after 30 days. ([#&#8203;11866](https://redirect.github.com/jdx/mise/pull/11866) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **brew:** the Homebrew cask backend now supports structured `symlink` steps (with path bases, templates, guards, source globs, and sudo control), generic cask artifacts, and `copy`/installer flight steps, with transactional rollback if an install fails. ([#&#8203;11962](https://redirect.github.com/jdx/mise/pull/11962), [#&#8203;11963](https://redirect.github.com/jdx/mise/pull/11963), [#&#8203;11964](https://redirect.github.com/jdx/mise/pull/11964) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **task:** `mise run --all` opens the interactive task picker with tasks from the entire monorepo, matching the load path already used by `mise tasks ls --all`. The default picker stays scoped to the current directory hierarchy. ([#&#8203;11920](https://redirect.github.com/jdx/mise/pull/11920) by [@&#8203;jdx](https://redirect.github.com/jdx)) ```console mise run --all ``` - **task:** add `task.cache.audit_report` (`MISE_TASK_CACHE_AUDIT_REPORT`) to write the complete cache-audit report to a JSON Lines file. The console still caps at 20 paths per task, but the file now captures every undeclared read and write so large audits (e.g. Jest over `node_modules`) are actually usable. ([#&#8203;11997](https://redirect.github.com/jdx/mise/pull/11997) by [@&#8203;stevenpollack](https://redirect.github.com/stevenpollack)) ```console MISE_TASK_CACHE_AUDIT_REPORT=audit.jsonl mise run --force build ``` - **dotfiles:** whole-file `[dotfiles]` entries can now declare their body inline with `content = "..."` instead of requiring a separate source file, useful for small configs and user-writable paths outside `$HOME`. `content` cannot be combined with `source`, `mode`, or `exclude`. ([#&#8203;11983](https://redirect.github.com/jdx/mise/pull/11983) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **deps:** deps provider config fields (paths, commands, `env`, descriptions, timeouts) now render Tera templates using the defining config file's context, with shell-style environment expansion and rendered env values folded into freshness identity. Template errors surface as clear configuration errors before commands run. ([#&#8203;11886](https://redirect.github.com/jdx/mise/pull/11886) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **config:** add a config-root-scoped `[tool_config] locked = true` policy that requires tools declared by configs sharing that root to resolve and install from their lockfiles, without forcing global or parent-root tools into strict mode. `[settings] locked`, `--locked`, and `MISE_LOCKED` remain invocation-wide. ([#&#8203;11940](https://redirect.github.com/jdx/mise/pull/11940) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### Fixed - **task:** in monorepo mode, running a task by its bare or `:`-prefixed name now works from any directory below a config root, resolving to the nearest enclosing project instead of failing. ([#&#8203;11941](https://redirect.github.com/jdx/mise/pull/11941) by [@&#8203;pikeas](https://redirect.github.com/pikeas)) - **task:** normalize task cwd for source freshness ([#&#8203;11987](https://redirect.github.com/jdx/mise/pull/11987) by [@&#8203;jdx](https://redirect.github.com/jdx)), bound buffered command output ([#&#8203;11922](https://redirect.github.com/jdx/mise/pull/11922)), avoid zsh process-substitution hangs ([#&#8203;11904](https://redirect.github.com/jdx/mise/pull/11904)), and normalize variadic usage env values ([#&#8203;11881](https://redirect.github.com/jdx/mise/pull/11881)) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743); mask archive modes in remote cache nodes ([#&#8203;11877](https://redirect.github.com/jdx/mise/pull/11877) by [@&#8203;stevenpollack](https://redirect.github.com/stevenpollack)). - **http:** retry send failures that never produced a response, including HTTP/2 `REFUSED_STREAM`, which CDNs emit as backpressure and which previously failed on the first attempt even with retries enabled. ([#&#8203;11961](https://redirect.github.com/jdx/mise/pull/11961) by [@&#8203;mariadeluna-tomtom](https://redirect.github.com/mariadeluna-tomtom)) - **http:** honor system install destinations for downloads. ([#&#8203;11851](https://redirect.github.com/jdx/mise/pull/11851) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **aqua:** when a downloaded checksum file lists per-file hashes but none match the target filename, mise now errors instead of silently returning a wrong checksum. ([#&#8203;11973](https://redirect.github.com/jdx/mise/pull/11973) by [@&#8203;jakedgy](https://redirect.github.com/jakedgy)) - **pipx:** discover wheel-only package versions from PEP 503 Simple API indexes, so packages published only as wheels now appear in `mise ls-remote` and `latest` resolution. ([#&#8203;11959](https://redirect.github.com/jdx/mise/pull/11959) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **rust:** the rolling `nightly` channel now resolves to a concrete `nightly-YYYY-MM-DD` toolchain via the official channel manifest, making nightly lock, outdated, upgrade, and offline reuse reproducible while keeping `mise.toml` on `nightly`. ([#&#8203;11980](https://redirect.github.com/jdx/mise/pull/11980) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **ruby:** support ruby-build CLI options. ([#&#8203;11918](https://redirect.github.com/jdx/mise/pull/11918) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **conda:** preserve cross-platform lock data ([#&#8203;11946](https://redirect.github.com/jdx/mise/pull/11946) by [@&#8203;jdx](https://redirect.github.com/jdx)) and honor URL replacements ([#&#8203;11930](https://redirect.github.com/jdx/mise/pull/11930) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)). - **npm:** render lifecycle logs through the progress display. ([#&#8203;11939](https://redirect.github.com/jdx/mise/pull/11939) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **oci:** strip the tag from `name:tag@digest` references so pulling a base image by combined tag-and-digest no longer produces a malformed token scope, while preserving registry ports. ([#&#8203;11979](https://redirect.github.com/jdx/mise/pull/11979) by [@&#8203;fire-ant](https://redirect.github.com/fire-ant)) - **install:** write tool manifests atomically. ([#&#8203;11957](https://redirect.github.com/jdx/mise/pull/11957) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **lock:** include task-specific tools in the lockfile. ([#&#8203;11976](https://redirect.github.com/jdx/mise/pull/11976) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **deps:** invalidate deps state when a provider's command, environment, working directory, or shell changes, so an edited `run` command is no longer skipped as fresh ([#&#8203;11849](https://redirect.github.com/jdx/mise/pull/11849)); honor source and output overrides ([#&#8203;11896](https://redirect.github.com/jdx/mise/pull/11896)) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743). - **hooks:** skip tool installation in preinstall tasks. ([#&#8203;11927](https://redirect.github.com/jdx/mise/pull/11927) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **exec:** allow a symlinked `resolv.conf` inside the sandbox. ([#&#8203;11958](https://redirect.github.com/jdx/mise/pull/11958) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **generate:** honor absolute localized directories. ([#&#8203;11975](https://redirect.github.com/jdx/mise/pull/11975) by [@&#8203;NgoQuocViet2001](https://redirect.github.com/NgoQuocViet2001)) - **config:** allow typing `j`/`k` to filter in the `mise edit` tool picker ([#&#8203;11969](https://redirect.github.com/jdx/mise/pull/11969) by [@&#8203;jakedgy](https://redirect.github.com/jakedgy)); create the config directory before writing into it ([#&#8203;11934](https://redirect.github.com/jdx/mise/pull/11934)) and stop a `conf.d` drop-in from becoming the write target ([#&#8203;11917](https://redirect.github.com/jdx/mise/pull/11917)) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562). - **bootstrap:** avoid sudo for user-writable files ([#&#8203;11984](https://redirect.github.com/jdx/mise/pull/11984)) and allow Windows bootstrap without system files ([#&#8203;12003](https://redirect.github.com/jdx/mise/pull/12003)) by [@&#8203;jdx](https://redirect.github.com/jdx). - **semver:** stop labeling a mangled value as a semver range. ([#&#8203;11949](https://redirect.github.com/jdx/mise/pull/11949) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ##### Windows fixes - **cli:** `mise activate` and `mise completion` now both accept `pwsh` and `powershell`, and shell detection recognizes `.exe` suffixes. ([#&#8203;11928](https://redirect.github.com/jdx/mise/pull/11928) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **shell:** resolve a shell named by a full Windows path. ([#&#8203;11950](https://redirect.github.com/jdx/mise/pull/11950) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **shims:** stop treating a full-path `argv[0]` as a shim name. ([#&#8203;11982](https://redirect.github.com/jdx/mise/pull/11982) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **toolset:** accept a Windows tool path spelled with backslashes ([#&#8203;11937](https://redirect.github.com/jdx/mise/pull/11937)) and reject `cmd.exe` metacharacters in a Windows tool path ([#&#8203;11947](https://redirect.github.com/jdx/mise/pull/11947)) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562). - **dotfiles:** treat an unmanaged file as a conflict on Windows too. ([#&#8203;11981](https://redirect.github.com/jdx/mise/pull/11981) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **tasks:** stop telling Windows users to run `chmod +x`. ([#&#8203;11923](https://redirect.github.com/jdx/mise/pull/11923) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) #### Changed - **upgrade/outdated:** `-b` is now the shorthand for `--bump`. The old `-l` bump shorthand is hidden and deprecated (removal planned for 2027.8.5) so `-l` can later mean `--local`. When tools are current within configured ranges but a bump is available outside them, both commands now say so instead of reporting everything up to date. ([#&#8203;11945](https://redirect.github.com/jdx/mise/pull/11945) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **cli:** `mise use --global` alongside a path is now rejected instead of silently ignored. ([#&#8203;11935](https://redirect.github.com/jdx/mise/pull/11935) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) #### Deprecated - **config:** the automatic `all_compile = true` default on NixOS is deprecated and scheduled for removal in 2027.8.0. It currently forces source builds for Node, Python, Erlang, and Ruby even when precompiled binaries work through `nix-ld`; mise now warns and points to enabling `nix-ld` or setting `all_compile = true` explicitly. Alpine's source-build default is unchanged. ([#&#8203;11956](https://redirect.github.com/jdx/mise/pull/11956) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### Registry - Added `native-sdk` ([github:vercel-labs/native](https://redirect.github.com/vercel-labs/native)) by [@&#8203;phall1](https://redirect.github.com/phall1) in [#&#8203;11942](https://redirect.github.com/jdx/mise/pull/11942) - Added `restate` binaries ([github:restatedev/restate](https://redirect.github.com/restatedev/restate)) by [@&#8203;Bing-su](https://redirect.github.com/Bing-su) in [#&#8203;11953](https://redirect.github.com/jdx/mise/pull/11953) - Added `mailpit` ([aqua:axllent/mailpit](https://redirect.github.com/axllent/mailpit)) by [@&#8203;joealden](https://redirect.github.com/joealden) in [#&#8203;11960](https://redirect.github.com/jdx/mise/pull/11960) #### New Contributors - [@&#8203;stevenpollack](https://redirect.github.com/stevenpollack) made their first contribution in [#&#8203;11997](https://redirect.github.com/jdx/mise/pull/11997) - [@&#8203;mariadeluna-tomtom](https://redirect.github.com/mariadeluna-tomtom) made their first contribution in [#&#8203;11961](https://redirect.github.com/jdx/mise/pull/11961) - [@&#8203;pikeas](https://redirect.github.com/pikeas) made their first contribution in [#&#8203;11941](https://redirect.github.com/jdx/mise/pull/11941) - [@&#8203;phall1](https://redirect.github.com/phall1) made their first contribution in [#&#8203;11942](https://redirect.github.com/jdx/mise/pull/11942) **Full Changelog**: <https://github.com/jdx/mise/compare/v2026.8.5...v2026.8.6> #### 💚 Sponsor mise mise is maintained by [@&#8203;jdx](https://redirect.github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.8.5`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.5): : PyPy on the precompiled path, Node source patches, and a broad batch of fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/mise-interactive-config-v2026.8.4...v2026.8.5) 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 in `mise ls-remote python` and could not be installed at all. mise reads the upstream `downloads.python.org/pypy` index, downloads and extracts the correct archive, runs `ensurepip`, and records a blake3 checksum in the lockfile on first install (PyPy publishes no machine-readable checksums). ([#&#8203;11846](https://redirect.github.com/jdx/mise/pull/11846) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ```console mise install python@pypy3.10-7.3.17 ``` - **node:** add `node.apply_patches` (`MISE_NODE_APPLY_PATCHES`) to apply local or remote patches to the Node source build before `./configure` runs, mirroring `ruby.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. ([#&#8203;11850](https://redirect.github.com/jdx/mise/pull/11850) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ```toml [settings.node] compile = true apply_patches = "./patches/local.patch" ``` #### Fixed - **config:** global config precedence inside `~/.config/mise` now matches the documentation — `config.local.toml` overrides `config.toml`, which overrides `conf.d/*.toml`. Previously the order was reversed for `[settings]`, `[tools]`, and `[env]` when `~/.config/mise` was outside the cwd walk. ([#&#8203;11906](https://redirect.github.com/jdx/mise/pull/11906) by [@&#8203;halms](https://redirect.github.com/halms)) - **config:** `mise use` now 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. ([#&#8203;11848](https://redirect.github.com/jdx/mise/pull/11848) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **install:** inline `preinstall` and `postinstall` hooks now run from the owning project root, so relative paths resolve consistently even when `mise install` is started from a subdirectory. The invocation directory remains available through `MISE_ORIGINAL_CWD`. ([#&#8203;11857](https://redirect.github.com/jdx/mise/pull/11857) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **use:** `mise use --pin` now prefers an exact available release when pinning, instead of reusing a more-specific installed fuzzy match. For example `mise use --pin erlang@27.3` will pin `27.3` if that exact release exists remotely, rather than depending on which versions happen to be installed. ([#&#8203;11838](https://redirect.github.com/jdx/mise/pull/11838) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **task:** editing a root `[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. ([#&#8203;11858](https://redirect.github.com/jdx/mise/pull/11858) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **rust:** mise now reuses a complete external rustup installation (for example one installed by Homebrew) when the default Rust homes are not initialized, instead of downloading and initializing its own. Explicitly configured Cargo/Rustup homes continue using the mise-managed path. ([#&#8203;11840](https://redirect.github.com/jdx/mise/pull/11840) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **conda:** conda package commands now run through prefix-aware launchers that activate each command's own conda prefix, fixing tools like `jdtls` that expand `${CONDA_PREFIX}` and rely on activation scripts. Dependency executables stay isolated from the user's shell `PATH`. ([#&#8203;11855](https://redirect.github.com/jdx/mise/pull/11855) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **python:** `disable_tools = ["python"]` (and allowlist forms like `enable_tools = ["node"]`) now also suppress the `_.python.venv` directive, so a disabled Python no longer leaves its virtualenv activated on `PATH`. ([#&#8203;11885](https://redirect.github.com/jdx/mise/pull/11885) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **vfox:** configured vfox tool options are now exposed to plugin hooks through `MISE_TOOL_OPTS__*` (with legacy `RTX_TOOL_OPTS__*` aliases), so hooks reading `os.getenv("MISE_TOOL_OPTS__...")` see the resolved options during install, uninstall, exec-env, and lock paths. ([#&#8203;11884](https://redirect.github.com/jdx/mise/pull/11884) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **aqua:** explicit `github_release` package-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". ([#&#8203;11901](https://redirect.github.com/jdx/mise/pull/11901) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) #### Changed - **cache:** remote build-cache prefetch now downloads output blobs concurrently (up to 48 in parallel) while reserving foreground slots for compiler lookups, dramatically speeding up large Rust cache restores that previously downloaded thousands of small artifacts serially. ([#&#8203;11905](https://redirect.github.com/jdx/mise/pull/11905) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### Documentation - **env:** clarified `_.source` PATH handling. ([#&#8203;11889](https://redirect.github.com/jdx/mise/pull/11889) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **task:** fixed boolean flag usage examples. ([#&#8203;11887](https://redirect.github.com/jdx/mise/pull/11887) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) #### Registry - Use aqua for helmsman. ([#&#8203;11908](https://redirect.github.com/jdx/mise/pull/11908) by [@&#8203;scop](https://redirect.github.com/scop)) #### Breaking Changes - If you relied on `disable_tools = ["python"]` while still keeping a `_.python.venv` activated, that virtualenv will no longer be activated. The existing venv remains on disk and is restored automatically when Python is re-enabled. ([#&#8203;11885](https://redirect.github.com/jdx/mise/pull/11885)) **Full Changelog**: <https://github.com/jdx/mise/compare/v2026.8.4...v2026.8.5> #### 💚 Sponsor mise mise is maintained by [@&#8203;jdx](https://redirect.github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.8.4`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.4): : Cross-backend ls, semver ordering, and bootstrap cask pruning [Compare Source](https://redirect.github.com/jdx/mise/compare/mise-interactive-config-v2026.8.3...mise-interactive-config-v2026.8.4) This release adds explicit semantic version ordering for major backends, teaches `mise ls` and `mise install --force` to 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` (`source` or `semver`) so that `latest` and 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-remote` continues to show upstream source order. ([#&#8203;11774](https://redirect.github.com/jdx/mise/pull/11774) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **ls:** `mise ls <name>` now matches a tool installed from multiple backends. Previously, installing a tool from both its registry backend and, say, a `cargo:` or `ubi:` build would show only one of them under `mise 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. ([#&#8203;11822](https://redirect.github.com/jdx/mise/pull/11822) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **install:** `mise install --force` now works without tool arguments, reinstalling every configured, OS-supported tool (or the monorepo union with `--monorepo`). ([#&#8203;11802](https://redirect.github.com/jdx/mise/pull/11802) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **upgrade:** add an `upgrade.auto_prune` setting (default `true`) that controls whether `mise upgrade` removes the version it replaced, plus a `--prune` flag 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. ([#&#8203;11788](https://redirect.github.com/jdx/mise/pull/11788) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ```toml [settings] upgrade.auto_prune = false ``` - **bootstrap:** `mise bootstrap packages prune --manager brew-cask` can 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. ([#&#8203;11810](https://redirect.github.com/jdx/mise/pull/11810) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** `[bootstrap.packages]` entries can now use table form with a `version` and `[tools]`-style `os` selectors, 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. ([#&#8203;11809](https://redirect.github.com/jdx/mise/pull/11809) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **brew:** the `brew-cask` manager now supports installing font casks directly from git URLs, including selecting a branch and staging files from a subdirectory. ([#&#8203;11781](https://redirect.github.com/jdx/mise/pull/11781) by [@&#8203;roele](https://redirect.github.com/roele)) - **aqua:** relative `aqua.registries` entries in a config file are now resolved against that config's root, so a `registry.yaml` committed inside a project repository can be referenced without a machine-specific absolute path. ([#&#8203;11804](https://redirect.github.com/jdx/mise/pull/11804) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ```toml [settings] aqua.registries = ["registry.yaml"] ``` - **spm:** `spm:` installs can now be pinned to a commit via `rev:<commit>` (and compatible `ref:<commit>`), building from source. ([#&#8203;11815](https://redirect.github.com/jdx/mise/pull/11815) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **generate:** generated git hooks can now carry extra mise flags. Anything after `--` is inserted between `mise` and `run`, so a hook can target config in a subdirectory or set other global flags. ([#&#8203;11820](https://redirect.github.com/jdx/mise/pull/11820) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) ```bash mise generate git-pre-commit --task lint -- -C subdir -E ci ``` #### Fixed - **watch:** `mise watch` with no task name now runs the `default` task, matching `mise run`, instead of failing with "No tasks specified". ([#&#8203;11836](https://redirect.github.com/jdx/mise/pull/11836) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **activate:** `--silent` and `--log-level` are now forwarded into the generated activation hook, so per-directory `hook-env` output can actually be silenced. ([#&#8203;11831](https://redirect.github.com/jdx/mise/pull/11831) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **sops:** SOPS files decrypted through the external `sops` CLI (`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. ([#&#8203;11834](https://redirect.github.com/jdx/mise/pull/11834) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **conda:** on Windows, dependency DLLs are now placed beside the binaries in `.mise-bins`, fixing tools such as `conda:postgresql` and `conda:zstd` that previously failed to start with a missing-DLL error. ([#&#8203;11825](https://redirect.github.com/jdx/mise/pull/11825) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **ruby:** on Windows, mise now installs the highest RubyInstaller2 build revision (`-2`, `-3`, …) instead of always using the superseded `-1` build. ([#&#8203;11807](https://redirect.github.com/jdx/mise/pull/11807) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **rust:** concurrent toolchain installs are now serialized to avoid conflicts, and Rust homes are resolved from the config environment. ([#&#8203;11794](https://redirect.github.com/jdx/mise/pull/11794), [#&#8203;11798](https://redirect.github.com/jdx/mise/pull/11798) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **task:** Azure DevOps remote git includes are now handled correctly. ([#&#8203;11768](https://redirect.github.com/jdx/mise/pull/11768) by [@&#8203;cheesemans](https://redirect.github.com/cheesemans)) - **task:** project-qualified monorepo tasks now match without requiring the leading `//`. ([#&#8203;11782](https://redirect.github.com/jdx/mise/pull/11782) by [@&#8203;williamsjokvist](https://redirect.github.com/williamsjokvist)) - **task:** incomplete task outputs are now detected, and task arguments are validated before dependencies run. ([#&#8203;11786](https://redirect.github.com/jdx/mise/pull/11786), [#&#8203;11787](https://redirect.github.com/jdx/mise/pull/11787) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **hooks:** hook arrays are now parsed before run tables, fixing certain hook configurations. ([#&#8203;11792](https://redirect.github.com/jdx/mise/pull/11792) by [@&#8203;jgillich](https://redirect.github.com/jgillich)) - **vfox:** a non-table hook response now returns an error instead of panicking, and URL replacements are honored. ([#&#8203;11793](https://redirect.github.com/jdx/mise/pull/11793) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562), [#&#8203;11795](https://redirect.github.com/jdx/mise/pull/11795) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **aqua:** package metadata is now looked up by aqua package name, and version bounds with four components and the `!=` operator are accepted. ([#&#8203;11828](https://redirect.github.com/jdx/mise/pull/11828), [#&#8203;11832](https://redirect.github.com/jdx/mise/pull/11832) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **generate:** generated git hooks forward hook arguments, and nested task stub conflicts are handled. ([#&#8203;11801](https://redirect.github.com/jdx/mise/pull/11801) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562), [#&#8203;11800](https://redirect.github.com/jdx/mise/pull/11800) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743)) - **config:** dropped the `--file` alias where `-f` means `--force`, and `ignored_config_paths` now matches on Windows. ([#&#8203;11789](https://redirect.github.com/jdx/mise/pull/11789), [#&#8203;11818](https://redirect.github.com/jdx/mise/pull/11818) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **settings:** config-file writes are now refused for env-only settings, list settings no longer panic when set from the environment, and the `go.set_gopath` deprecation message is corrected. ([#&#8203;11791](https://redirect.github.com/jdx/mise/pull/11791), [#&#8203;11799](https://redirect.github.com/jdx/mise/pull/11799) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562), [#&#8203;11835](https://redirect.github.com/jdx/mise/pull/11835) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **exec:** resolution failures now name installed-but-inactive tools to point you at the fix. ([#&#8203;11803](https://redirect.github.com/jdx/mise/pull/11803) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **go:** `go list` diagnostics are kept out of default output. ([#&#8203;11816](https://redirect.github.com/jdx/mise/pull/11816) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **tera:** the `pat` argument is honored on v1 `trim_start`/`trim_end`. ([#&#8203;11811](https://redirect.github.com/jdx/mise/pull/11811) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **link:** install path aliases are now rejected. ([#&#8203;11785](https://redirect.github.com/jdx/mise/pull/11785) by [@&#8203;NgoQuocViet2001](https://redirect.github.com/NgoQuocViet2001)) - **cli:** the base of `sub-N:` version prefixes is resolved before subtracting. ([#&#8203;11796](https://redirect.github.com/jdx/mise/pull/11796) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) - **core:** zero jobs is now treated as one, and forced colors are honored in tables. ([#&#8203;11790](https://redirect.github.com/jdx/mise/pull/11790) by [@&#8203;Marukome0743](https://redirect.github.com/Marukome0743), [#&#8203;11847](https://redirect.github.com/jdx/mise/pull/11847) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** compose is now planned before dependency installation. ([#&#8203;11829](https://redirect.github.com/jdx/mise/pull/11829) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **registry:** flutter URLs no longer double the `-stable` suffix. ([#&#8203;11808](https://redirect.github.com/jdx/mise/pull/11808) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)) #### Documentation - Clarified what the not-found handler can install ([#&#8203;11830](https://redirect.github.com/jdx/mise/pull/11830) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)), what libc detection actually does ([#&#8203;11813](https://redirect.github.com/jdx/mise/pull/11813) by [@&#8203;JamBalaya56562](https://redirect.github.com/JamBalaya56562)), and `task_config.shell` in the `task.shell` defaults ([#&#8203;11775](https://redirect.github.com/jdx/mise/pull/11775) by [@&#8203;pynappo](https://redirect.github.com/pynappo)). - Linked the Homebrew cask cookbook for cask lifecycle concepts ([#&#8203;11773](https://redirect.github.com/jdx/mise/pull/11773) by [@&#8203;himkt](https://redirect.github.com/himkt)) and fixed dead bootstrap package-plugin example URLs ([#&#8203;11780](https://redirect.github.com/jdx/mise/pull/11780) by [@&#8203;Bartok9](https://redirect.github.com/Bartok9)). #### Registry - Added android-cli ([#&#8203;11797](https://redirect.github.com/jdx/mise/pull/11797) by [@&#8203;ggoggam](https://redirect.github.com/ggoggam)) and zk ([#&#8203;11827](https://redirect.github.com/jdx/mise/pull/11827) by [@&#8203;laraochan](https://redirect.github.com/laraochan)). #### New Contributors - [@&#8203;laraochan](https://redirect.github.com/laraochan) made their first contribution in [#&#8203;11827](https://redirect.github.com/jdx/mise/pull/11827) - [@&#8203;williamsjokvist](https://redirect.github.com/williamsjokvist) made their first contribution in [#&#8203;11782](https://redirect.github.com/jdx/mise/pull/11782) - [@&#8203;NgoQuocViet2001](https://redirect.github.com/NgoQuocViet2001) made their first contribution in [#&#8203;11785](https://redirect.github.com/jdx/mise/pull/11785) - [@&#8203;jgillich](https://redirect.github.com/jgillich) made their first contribution in [#&#8203;11792](https://redirect.github.com/jdx/mise/pull/11792) - [@&#8203;pynappo](https://redirect.github.com/pynappo) made their first contribution in [#&#8203;11775](https://redirect.github.com/jdx/mise/pull/11775) - [@&#8203;cheesemans](https://redirect.github.com/cheesemans) made their first contribution in [#&#8203;11768](https://redirect.github.com/jdx/mise/pull/11768) **Full Changelog**: <https://github.com/jdx/mise/compare/v2026.8.3...v2026.8.4> #### 💚 Sponsor mise mise is maintained by [@&#8203;jdx](https://redirect.github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.8.3`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.3): : Flatpak, Font Casks, and Task Precedence Fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/mise-cache-rustc-v2026.8.2...mise-interactive-config-v2026.8.3) 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-user` package manager. The existing `flatpak:<id>` entries stay system-scoped, and you can now declare both scopes in the same config, including the same application ID. ([#&#8203;11757](https://redirect.github.com/jdx/mise/pull/11757) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **brew:** the built-in `brew-cask` manager now works on Linux for font-only casks, installing fonts under `$XDG_DATA_HOME/fonts` via Linuxbrew. Non-font casks on Linux fail with a clear unsupported-platform error. ([#&#8203;11758](https://redirect.github.com/jdx/mise/pull/11758) by [@&#8203;jdx](https://redirect.github.com/jdx)) ```bash mise bootstrap packages use brew-cask:font-heavy-data-nerd-font ``` - **pipx:** add a per-tool `registry_url` option so version listing and `latest` resolution can target a private PyPI-style index without changing the global `pipx.registry_url`. The latest-version cache is keyed by registry URL to avoid cross-registry reuse. ([#&#8203;11754](https://redirect.github.com/jdx/mise/pull/11754) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **shim:** add a `not_found_system_fallback` setting (`MISE_NOT_FOUND_SYSTEM_FALLBACK`, default `true`). Setting it to `false` prevents a shim for a missing tool from silently falling back to a same-named binary on `PATH`, failing loudly instead — useful for hardened environments that pin an explicit allowlist of tools. ([#&#8203;11755](https://redirect.github.com/jdx/mise/pull/11755) by [@&#8203;richid](https://redirect.github.com/richid)) ##### Fixed - **task:** inline `[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. ([#&#8203;11734](https://redirect.github.com/jdx/mise/pull/11734) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **task:** a metadata-only inline task in a higher-precedence file such as `mise.local.toml` now overlays the command-bearing definition from a lower file instead of wiping out its `run`. Command-bearing higher-precedence tasks still fully replace the lower one. ([#&#8203;11745](https://redirect.github.com/jdx/mise/pull/11745) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **task:** tasks declaring `double_dash="required"` again accept values passed after `--`, which had regressed to being rejected. ([#&#8203;11729](https://redirect.github.com/jdx/mise/pull/11729) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **config:** configured backend options such as `postinstall` are now applied to explicitly requested runtime versions (e.g. `mise install solidity@0.8.2`) that carry registry defaults, instead of being skipped. ([#&#8203;11550](https://redirect.github.com/jdx/mise/pull/11550) by [@&#8203;risu729](https://redirect.github.com/risu729)) - **lockfile:** setting `lockfile = true` now creates missing project lockfiles during `mise use`, `mise install`, and upgrade flows. An unset setting continues to update existing lockfiles only. ([#&#8203;11746](https://redirect.github.com/jdx/mise/pull/11746) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **python:** a plain `mise lock` now preserves the python-build-standalone artifact already recorded for each platform instead of churning the lockfile to the newest build. Use `mise lock --bump` to advance the PBS build explicitly. ([#&#8203;11747](https://redirect.github.com/jdx/mise/pull/11747) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **python:** skip junctions when syncing installs to uv to avoid errors on Windows. ([#&#8203;11683](https://redirect.github.com/jdx/mise/pull/11683) by [@&#8203;risu729](https://redirect.github.com/risu729)) - **github:** release-age filters like `minimum_release_age` now use GitHub's `published_at` timestamp rather than the commit `created_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. ([#&#8203;11756](https://redirect.github.com/jdx/mise/pull/11756) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **use:** adding multiple tools in a single `mise use` now keeps an already-sorted `[tools]` table alphabetically ordered. ([#&#8203;11713](https://redirect.github.com/jdx/mise/pull/11713) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **rust:** expand `~` in the `home` setting. ([#&#8203;11752](https://redirect.github.com/jdx/mise/pull/11752) by [@&#8203;xqm32](https://redirect.github.com/xqm32)) - **vfox:** resolve backend aliases for custom plugins. ([#&#8203;11736](https://redirect.github.com/jdx/mise/pull/11736) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **vfox:** cancel in-flight HTTP retries when interrupted with Ctrl-C. ([#&#8203;11735](https://redirect.github.com/jdx/mise/pull/11735) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **npm shim:** `npm link <package-name>` (and its `npm ln` alias) now triggers an auto-reshim, since it installs a package globally. ([#&#8203;11748](https://redirect.github.com/jdx/mise/pull/11748) by [@&#8203;cheezmil](https://redirect.github.com/cheezmil)) - **ls-remote:** suppress the `minimum_release_age` warning during shell completions. ([#&#8203;11727](https://redirect.github.com/jdx/mise/pull/11727) by [@&#8203;beisenherz](https://redirect.github.com/beisenherz)) - **docs:** fix an incorrect ripgrep URL in the tool-stub docs. ([#&#8203;11725](https://redirect.github.com/jdx/mise/pull/11725) by [@&#8203;arti5an](https://redirect.github.com/arti5an)) ##### New Contributors - [@&#8203;richid](https://redirect.github.com/richid) made their first contribution in [#&#8203;11755](https://redirect.github.com/jdx/mise/pull/11755) - [@&#8203;xqm32](https://redirect.github.com/xqm32) made their first contribution in [#&#8203;11752](https://redirect.github.com/jdx/mise/pull/11752) - [@&#8203;cheezmil](https://redirect.github.com/cheezmil) made their first contribution in [#&#8203;11748](https://redirect.github.com/jdx/mise/pull/11748) - [@&#8203;arti5an](https://redirect.github.com/arti5an) made their first contribution in [#&#8203;11725](https://redirect.github.com/jdx/mise/pull/11725) - [@&#8203;beisenherz](https://redirect.github.com/beisenherz) made their first contribution in [#&#8203;11727](https://redirect.github.com/jdx/mise/pull/11727) **Full Changelog**: <https://github.com/jdx/mise/compare/v2026.8.2...v2026.8.3> ##### 💚 Sponsor mise mise is maintained by [@&#8203;jdx](https://redirect.github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.8.2`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.2): : Declarative System Bootstrap [Compare Source](https://redirect.github.com/jdx/mise/compare/mise-cache-rustc-v2026.8.1...mise-cache-rustc-v2026.8.2) This release turns `mise bootstrap` into 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's `ruby.compile=false` a strict precompiled-only mode and lands a batch of install and lockfile fixes. #### Highlights - `mise bootstrap` gains a Terraform-style declarative model. A new `mise bootstrap plan` previews changes with table or JSON output and detailed exit codes, and each resource type has its own `apply`/`status` commands that converge only when something actually differs. - Bootstrap can now provision far more than tools and packages: privileged files and directories, Linux accounts, systemd services, Compose projects, and host firewall rules, with dependency ordering, fail-closed safety checks, and secret inputs sourced from environment variables (never stored in config). - The same bootstrap project can be applied to remote machines over SSH via `mise bootstrap remote`, including automatic detection of the target's OS/arch/libc and signature-verified download of the matching mise binary. #### Added - **bootstrap:** declarative resource plans. `mise bootstrap plan` previews what bootstrap would change before applying, with table or `--json` output 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. ([#&#8203;11669](https://redirect.github.com/jdx/mise/pull/11669) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** manage privileged files and directories via `[bootstrap.files]` and `[bootstrap.directories]`, with content (inline or from a source), ownership, mode, and explicit `present`/`absent` state. Writes are atomic, removal is opt-in (and requires `recursive = true` for non-empty directories), and privileged work runs through hidden helpers that never expose file content in argv or logs. ([#&#8203;11674](https://redirect.github.com/jdx/mise/pull/11674) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** secret inputs for managed files. `[bootstrap.secrets]` references sensitive values through environment variables so nothing is stored in config, and managed files with `template = true` can render them via `{{ secret(name="...") }}`. `mise bootstrap secrets status` reports availability without revealing values, and `--prompt-secrets` prompts securely for anything missing. ([#&#8203;11680](https://redirect.github.com/jdx/mise/pull/11680) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** manage Linux users and groups via `[bootstrap.users]` and `[bootstrap.groups]`, with create/update/remove, supplementary groups, home handling, and explicit `state = "absent"`. Accounts converge before the files that reference them, and UID/GID collisions fail closed. ([#&#8203;11681](https://redirect.github.com/jdx/mise/pull/11681) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** manage Linux systemd services via `[bootstrap.services]` for running/stopped, enabled/disabled, and masked state. Managed files and directories can set `notify` to trigger `reload`, `restart`, or `reload_or_restart` handlers, but only after a real file change. ([#&#8203;11688](https://redirect.github.com/jdx/mise/pull/11688) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** manage Docker Compose projects via `[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). ([#&#8203;11689](https://redirect.github.com/jdx/mise/pull/11689) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** manage Linux host firewall rules via `[bootstrap.linux.firewall]` with nftables, firewalld, and UFW backends (`backend = "auto"`). Includes SSH-lockout protection (default-deny requires a covering allow rule or `allow_lockout = true`), drift detection, and preservation of undeclared rules unless `exclusive` is set. ([#&#8203;11694](https://redirect.github.com/jdx/mise/pull/11694) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** run bootstrap over SSH with `mise bootstrap remote`, targeting a named `[bootstrap.remote.hosts]` inventory or ad-hoc `user@host` targets. mise archives and stages your project, provisions a compatible mise binary on the host, runs bootstrap with forwarded flags, and cleans up staging afterward. ([#&#8203;11690](https://redirect.github.com/jdx/mise/pull/11690) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **bootstrap:** remote provisioning now detects each target's OS, architecture, and Linux libc (glibc vs musl) and, when the local binary is not compatible, downloads the matching raw executable for the same release from GitHub with minisign-verified checksums. Custom or debug builds fail closed and require an explicit `mise_bin`, `remote_mise`, or `bootstrap_command`. ([#&#8203;11693](https://redirect.github.com/jdx/mise/pull/11693) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### Changed - **ruby:** `ruby.compile = false` is now a strict precompiled-only mode, matching `python.compile`. Installs error with `no precompiled ruby found` instead 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. Previously `false` was a no-op after precompiled binaries became the default in 2026.8.0. Unset and `compile = true` are unchanged; Windows is unaffected. ([#&#8203;11710](https://redirect.github.com/jdx/mise/pull/11710) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **task:** workspace task inference is now opt-in per provider via `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. ([#&#8203;11706](https://redirect.github.com/jdx/mise/pull/11706) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### Fixed - **brew:** `:any_skip_relocation` bottles 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. ([#&#8203;11665](https://redirect.github.com/jdx/mise/pull/11665) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **brew-cask:** detect extensionless DMG downloads (such as Raycast) by their UDIF trailer instead of treating them as raw executables and failing to find the app bundle. ([#&#8203;11692](https://redirect.github.com/jdx/mise/pull/11692) by [@&#8203;jacobbednarz](https://redirect.github.com/jacobbednarz)) - **lock:** `mise lock --bump` now 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. ([#&#8203;11664](https://redirect.github.com/jdx/mise/pull/11664) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **pipx:** release-age gating now uses PyPI's precise RFC3339 `upload_time_iso_8601` timestamp instead of the timezone-naive `upload_time`, which previously made freshly released packages appear up to \~24h younger and over-gated them under `minimum_release_age`. ([#&#8203;11662](https://redirect.github.com/jdx/mise/pull/11662) by [@&#8203;Guria](https://redirect.github.com/Guria)) - **pacman:** `pacman -Q` is now parsed under `LC_ALL=C` so missing-package detection works in non-English locales; previously `[bootstrap.packages]` could bail on a translated "was not found" message. ([#&#8203;11673](https://redirect.github.com/jdx/mise/pull/11673) by [@&#8203;rarandeyo](https://redirect.github.com/rarandeyo)) - **sync:** clear stale `incomplete` markers when an external link (from uv, nvm, pyenv, nodenv, or Homebrew) is confirmed healthy, so `mise where` no longer treats a working external version as incomplete after an interrupted install. ([#&#8203;11172](https://redirect.github.com/jdx/mise/pull/11172) by [@&#8203;risu729](https://redirect.github.com/risu729)) - **completions:** an explicit `--` 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. ([#&#8203;11711](https://redirect.github.com/jdx/mise/pull/11711) by [@&#8203;jdx](https://redirect.github.com/jdx)) - **registry:** shim auto-install uses new declared `bins` metadata to pick the correct provider before falling back to incidental executables, fixing cases where invoking the `npm` shim could run Node's bundled npm instead of the configured npm version. ([#&#8203;11666](https://redirect.github.com/jdx/mise/pull/11666), [#&#8203;11671](https://redirect.github.com/jdx/mise/pull/11671), [#&#8203;11676](https://redirect.github.com/jdx/mise/pull/11676), [#&#8203;11677](https://redirect.github.com/jdx/mise/pull/11677), [#&#8203;11678](https://redirect.github.com/jdx/mise/pull/11678) by [@&#8203;jdx](https://redirect.github.com/jdx)) #### New Contributors - [@&#8203;jacobbednarz](https://redirect.github.com/jacobbednarz) made their first contribution in [#&#8203;11692](https://redirect.github.com/jdx/mise/pull/11692) - [@&#8203;rarandeyo](https://redirect.github.com/rarandeyo) made their first contribution in [#&#8203;11673](https://redirect.github.com/jdx/mise/pull/11673) **Full Changelog**: <https://github.com/jdx/mise/compare/v2026.8.1...v2026.8.2> #### 💚 Sponsor mise mise is maintained by [@&#8203;jdx](https://redirect.github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [jdx.dev](https://jdx.dev/sponsors.html). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.8.1`](https://redirect.github.com/jdx/mise/releases/tag/v2026.8.1): : Task Cache Goes Remote, Affected Tasks, and Config Ergonomics [Compare Source](https://redirect.github.com/jdx/mise/compare/mise-cache-rustc-v2026.8.0...mise-cache-rustc-v2026.8.1) 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 --affected` for monorepos, and lands a batch of config, upgrade, and install fixes. #### Highlights - The experimental task output cache now supports remote sharing: a composite store reads locally first, promotes remote hits, and mirrors writes, with authenticated requests backed by token files or GitHub Actions OIDC. Cache entries can be inspected, cleared per-task, and bounded by size and age. - Experimental `mise run --affected` runs 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. - The config-writing flags are now more forgiving: `--file` and `--path` are interchangeable across the commands that write config, so you no longer have to remember which name each subcommand expects. #### Added - **task:** experimental `mise run --affected` selects 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-head` or `MISE_AFFECTED_*`. Includes JSON output and an `--explain` breakdown of why each task was selected. ([#&#8203;11590](https://redirect.github.com/jdx/mise/pull/11590), [#&#8203;11587](https://redirect.github.com/jdx/mise/pull/11587), [#&#8203;11589](https://redirect.github.com/jdx/mise/pull/11589), [#&#8203;11591](https://redirect.github.com/jdx/mise/pull/11591), [#&#8203;11593](https://redirect.github.com/jdx/mise/pull/11593) by [@&#8203;jdx](https://redirect.github.com/jdx)) ```bash mise run --affected test mise run --affected --affected-base main test ``` - **task:** remote task cache. A composite store layers local and remote backends, reading local first and promoting remote hits, then committing locally be > ✂ **Note** > > PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4yOS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=--> --------- Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
1 parent 8d0fa20 commit 3ad84d4

18 files changed

Lines changed: 38 additions & 33 deletions

‎.github/workflows/acceptance-tests.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
1616
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
1717
with:
18-
version: v2026.7.5
19-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
18+
version: v2026.8.6
19+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
2020
- name: Run acceptance tests
2121
run: mise run acceptance-test

‎.github/workflows/api-diff.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ jobs:
3434
persist-credentials: false
3535
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
3636
with:
37-
version: v2026.7.5
38-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
37+
version: v2026.8.6
38+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
3939
- name: Cache local Maven repository
4040
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4141
with:

‎.github/workflows/build.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ jobs:
1414
persist-credentials: false
1515
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
1616
with:
17-
version: v2026.7.5
18-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
17+
version: v2026.8.6
18+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
1919
- name: Cache local Maven repository
2020
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
2121
with:

‎.github/workflows/bump-api-diff-baseline.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ jobs:
3535
persist-credentials: true
3636
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
3737
with:
38-
version: v2026.7.5
39-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
38+
version: v2026.8.6
39+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
4040
- name: Cache local Maven repository
4141
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4242
with:

‎.github/workflows/generate-protobuf.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ jobs:
2020
persist-credentials: false
2121
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
2222
with:
23-
version: v2026.7.5
24-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
23+
version: v2026.8.6
24+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
2525
- name: Cache local Maven repository
2626
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
2727
with:

‎.github/workflows/github-pages.yaml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ jobs:
3939
fetch-depth: 0
4040
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
4141
with:
42-
version: v2026.7.5
43-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
42+
version: v2026.8.6
43+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
4444
cache: "false"
4545
- name: Setup Pages
4646
id: pages

‎.github/workflows/java-version-matrix-tests.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ jobs:
3333
- name: Set up mise
3434
uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
3535
with:
36-
version: v2026.7.5
37-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
36+
version: v2026.8.6
37+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
3838

3939
- name: Cache local Maven repository
4040
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0

‎.github/workflows/jmx-exporter-compatibility.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ jobs:
2424
persist-credentials: false
2525
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
2626
with:
27-
version: v2026.7.5
28-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
27+
version: v2026.8.6
28+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
2929
working_directory: .mise/envs/jmx-exporter
3030
- name: Cache local Maven repository
3131
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0

‎.github/workflows/lint.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ jobs:
2323
- name: Setup mise
2424
uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
2525
with:
26-
version: v2026.7.5
27-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
26+
version: v2026.8.6
27+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
2828

2929
- name: Lint
3030
env:

‎.github/workflows/micrometer-compatibility.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ jobs:
3232
persist-credentials: false
3333
- uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
3434
with:
35-
version: v2026.7.5
36-
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
35+
version: v2026.8.6
36+
sha256: 96f6f1f416d868b78addd22746eefc7f4bf7820c6a3afa392a9f653f708c1644
3737
working_directory: .mise/envs/micrometer
3838
- name: Cache local Maven repository
3939
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0

0 commit comments

Comments
 (0)