Skip to content

chore(deps): update dependency mise to v2026.3.3#94

Merged
renovate-sh-app[bot] merged 1 commit intomainfrom
grafanarenovatebot/mise
Mar 9, 2026
Merged

chore(deps): update dependency mise to v2026.3.3#94
renovate-sh-app[bot] merged 1 commit intomainfrom
grafanarenovatebot/mise

Conversation

@renovate-sh-app
Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change Pending
mise minor v2026.2.21v2026.3.3 v2026.3.5 (+1)

Release Notes

jdx/mise (mise)

v2026.3.3: : Standalone installer zstd fix

Compare Source

A single-fix patch release that corrects the standalone installer's zstd archive selection logic on systems where the zstd binary is not installed.

Fixed
  • Standalone installer no longer selects zstd archives when zstd is not installed -- The tar_supports_zstd() function returned true for GNU tar >= 1.31 regardless of whether the zstd binary was actually present on the system. Since GNU tar shells out to zstd rather than linking against it, this caused extraction to fail. The fix checks for the zstd binary upfront before evaluating the tar version. A separate fallback branch in get_ext() that could also select a .tar.zst archive without verifying zstd availability has been removed. #​8460 by @​octo
New Contributors

Full Changelog: jdx/mise@v2026.3.2...v2026.3.3

v2026.3.2: : Local-scoped upgrades, config-based quiet/silent, and redaction fixes

Compare Source

A small release that adds a --local flag for scoping outdated and upgrade to project-local tools, fixes several bugs around env var redaction, Tera template rendering in prepare, and task output configuration, and corrects a regression in the standalone installer.

Added
  • --local flag for outdated and upgrade commands -- You can now run mise upgrade --local or mise outdated --local to restrict operations to tools defined in project-local config files (e.g., mise.toml), skipping anything from the global config (~/.config/mise/config.toml). This is useful when you have separate workflows for managing global vs. project-local tool versions. #​8451 by @​malept

    # Only upgrade tools defined in the local mise.toml
    mise upgrade --local
    
    # Only show outdated tools from the local config
    mise outdated --local
  • tinygo added to the registry -- TinyGo is now available via mise use tinygo, using the aqua backend. #​8446 by @​artemklevtsov

Fixed
  • task.output config setting now works for quiet/silent modes -- Setting task.output = "quiet" or task.output = "silent" in mise.toml was not suppressing mise's own output during task runs. Only the MISE_TASK_OUTPUT environment variable worked. Both approaches now behave identically. #​8445 by @​my1e5

  • Redactions applied correctly when tools = true and redact = true are combined -- Environment variables with both tools = true and redact = true were not being redacted in task output because the tools-only code path collected redactions but never registered them with the global redactor. Secret values now correctly appear as [redacted]. #​8449 by @​jdx

  • Tera templates rendered in [prepare.*.env] values -- Tera template expressions like "{{env.MY_VAR}}" in prepare provider env blocks were being passed as literal strings instead of being rendered. They are now evaluated with the full toolset environment available in the template context. #​8450 by @​jdx

  • Standalone installer tar zstd version check regex fixed (again) -- A follow-up fix to the regex repair in v2026.3.1: a missing escape on the opening parenthesis caused grep: Unmatched ) or \) errors. The regex is now fully correct. #​8453 by @​chadlwilson

Full Changelog: jdx/mise@v2026.3.1...v2026.3.2

v2026.3.1: : Bug fixes for tasks, Swift, Julia, and installer

Compare Source

A small bug-fix release that corrects task scheduling behavior for depends_post, fixes Julia version resolution, resolves Swift installation failures on some macOS environments, and repairs the standalone installer's tar version detection.

Fixed
  • depends_post tasks no longer run when a pre-dependency fails -- Previously, if a task in depends failed before the main task started, depends_post cleanup tasks would still execute. This happened because the scheduler checked whether the parent task was scheduled rather than whether it actually executed. Now depends_post tasks are correctly skipped when the main task never ran due to a pre-dependency failure. They still run as expected when the main task itself fails. #​8426 by @​jdx

  • Julia version listing no longer crashes with MISE_USE_VERSIONS_HOST=0 -- The Julia registry entry's version_expr used a filter() predicate with a bare # variable, which the expr-lang evaluator treated as an undefined variable. Wrapping the predicate in {...} closure braces fixes the syntax so mise ls-remote julia works correctly when fetching versions directly from the upstream JSON endpoint. #​8420 by @​jdx

  • Swift install fallback to system pkgutil on macOS -- On some macOS environments, pkgutil is not found on the PATH during Swift installation. The Swift backend now falls back to /usr/sbin/pkgutil (the standard system location) when which pkgutil fails. #​8435 by @​mackwic

  • Standalone installer tar zstd version check fixed -- The regex used to detect whether the system tar supports zstd was broken -- unescaped parentheses and pipes caused grep to match nothing. The regex is now properly escaped so tar version 1.31+ is correctly detected, enabling zstd-compressed archive downloads. #​8430 by @​autarch

New Contributors

Full Changelog: jdx/mise@v2026.3.0...v2026.3.1

v2026.3.0: : Smarter prepare, task-backed hooks, and per-task vars

Compare Source

This release brings a major upgrade to mise prepare with content-hash freshness, dependency ordering, and better diagnostics. Hooks and watch files can now delegate to full mise tasks, and task vars gain monorepo inheritance and per-task overrides. Several lockfile and idiomatic version file parsing bugs are also fixed.

Highlights
  • mise prepare overhaul -- Freshness detection switches from mtime to blake3 content hashing (reliable across CI and clock skew), providers can declare dependencies on each other, a new --explain flag shows detailed diagnostics, and per-provider timeouts are now supported.
  • Task-backed hooks -- Hooks and watch_files can now reference mise tasks instead of inline scripts, gaining access to the full task system (deps, env, templating).
  • Per-task vars and monorepo vars inheritance -- Tasks can define their own vars that override config-level vars, and monorepo subdirectory vars are now properly inherited when running tasks from the root.
Added
  • Task references in hooks and watch_files -- Hooks can now use { task = "name" } syntax to run a mise task instead of an inline script. Mixed arrays of scripts and task references are supported. Task refs respect MISE_NO_HOOKS=1 and the full task system (deps, env, etc.). #​8400 by @​jdx

    [hooks]
    enter = { task = "setup" }
    
    [[watch_files]]
    patterns = ["uv.lock"]
    task = "uv-deps"
  • Per-task vars and monorepo vars inheritance -- Tasks can now define task-local vars that override config-level vars for that task. Monorepo subdirectory vars are also properly inherited when running tasks from the project root, matching how env already works. #​8248 by @​halms

    [vars]
    greeting = "hello"
    
    [tasks.test]
    run = 'echo {{vars.greeting}}'
    vars = { greeting = "hi" }   # overrides config-level var
  • Built-in git-submodule prepare provider -- A new built-in provider detects .gitmodules and runs git submodule update --init --recursive when submodule directories are stale. No configuration needed -- it activates automatically when .gitmodules exists. #​8407 by @​jdx

  • Blake3 content-hash freshness for prepare -- mise prepare now uses blake3 content hashing instead of mtime comparison to determine whether providers need to run. Hashes are persisted to .mise/prepare-state.toml. This is more reliable across CI, VCS operations, and clock skew scenarios. #​8404 by @​jdx

  • Human-readable stale reasons in prepare output -- Dry-run and status bar messages now explain why a provider would run, e.g. [dry-run] Would prepare: npm (node_modules does not exist) or prepare: codegen (schema.graphql changed) -- run 'mise prep'. #​8408 by @​jdx

  • mise prepare --explain <provider> diagnostics -- A new --explain flag shows detailed information about a specific provider: sources, outputs, auto status, command, and a fresh/stale verdict with reasons. Exits 0 if fresh, 1 if stale, useful for scripting. #​8409 by @​jdx

  • Per-provider timeout support for prepare -- Providers can now set a timeout in seconds. If the command exceeds the timeout it is killed. #​8405 by @​jdx

    [prepare.npm]
    timeout = 120  # kill after 2 minutes
  • Dependency ordering for prepare providers -- Providers can declare depends = ["other-provider"] to enforce execution ordering. Independent providers still run in parallel. Cycle detection, failure propagation, and unknown-dep warnings are all handled. #​8401 by @​jdx

    [prepare.ansible-galaxy]
    depends = ["uv"]
    run = "ansible-galaxy install -f requirements.yml"
    sources = ["requirements.yml"]
    outputs = [".galaxy-installed"]
Fixed
  • Idiomatic version files now ignore comments -- Files like .python-version, .node-version, .ruby-version, and .java-version now correctly strip # comments (both full-line and inline) and blank lines, preventing mise from treating comment text as version specifiers. #​7682 by @​iloveitaly

  • Generic parser used for idiomatic files -- Built-in idiomatic file parsers (e.g. for package.json and raw text files) are now used consistently, preventing unexpected behavior when plugins like vfox don't support certain file formats. #​8171 by @​risu729

  • Aqua bin_paths disk cache restored with proper invalidation -- The aqua bin_paths.msgpack.z cache removed in v2026.2.24 has been restored with fresh_file invalidation keyed on the install directory. This recovers the 7-11% performance regression on mise env and mise hook-env while keeping cache correctness. #​8398 by @​jdx

  • Lockfile no longer splits entries for precompiled settings -- mise lock with precompiled_flavor or similar settings configured no longer produces duplicate tool entries by splitting the host platform into a separate entry. #​8396 by @​jdx

  • Python lockfile respects precompiled settings -- mise lock now correctly uses precompiled_arch, precompiled_os, and precompiled_flavor settings when generating Python lock file entries, and precompiled_flavor is properly honored during installs. #​8399 by @​jdx

  • "v" prefix normalized in lockfile version matching -- --locked mode no longer fails when mise.toml specifies v1.2.3 but the lockfile stores 1.2.3 (or vice versa). #​8413 by @​jdx

  • Vfox no longer eagerly loads metadata -- Removed vfox's idiomatic_filenames() override that triggered plugin metadata loading for every config file check, and reordered detection logic so known patterns are checked first. Eliminates spurious [vfox] Getting metadata for yarn debug messages. #​8397 by @​jdx

  • Fixed infinite recursion with uv_venv_auto and uv shims -- When uv_venv_auto = "create|source" is set and a mise shim for uv exists on PATH, venv creation no longer enters infinite subprocess recursion. The fix excludes the mise shims directory from the uv binary search. #​8402 by @​halms

  • Improved git submodule parser for prepare -- The .gitmodules parser is now INI-section aware, only extracting path values from [submodule "..."] sections and ignoring comments. Freshness check errors now default to fresh rather than stale, preventing spurious warnings. #​8412 by @​jdx

Breaking Changes
  • The deprecated # mise ... file task header syntax has been removed as scheduled. Only #MISE / # [MISE] / //MISE / ::MISE headers are now recognized. If you have task files still using the old # mise headers, update them to use the new syntax. #​8403 by @​jdx
New Contributors

Full Changelog: jdx/mise@v2026.2.24...v2026.3.0

v2026.2.24: : Hooks get Tera templates, aqua cache cleanup, and better error messages

Compare Source

A bug-fix release that enables Tera template rendering in hooks, eliminates a class of stale PATH bugs with aqua tools, improves error messages for unsupported registry tools, and removes the long-deprecated python.venv_auto_create setting.

Fixed
  • Hooks now support Tera template rendering -- Hook scripts can now use Tera template variables like {{tools.ripgrep.path}}, just like tasks. Additionally, the install progress bar is now cleared before postinstall hooks run, so hook output is no longer masked by the progress UI. Preinstall hooks correctly skip tools=true env directives since referenced tools may not yet be installed. #​8385 by @​jdx

  • Aqua tool PATH entries no longer go stale -- The aqua backend's bin_paths disk cache (bin_paths.msgpack.z) has been removed entirely. This cache provided negligible performance benefit -- reading and decompressing a msgpack file is comparable to parsing the small YAML registry entry -- but was the root cause of stale PATH entries after tool installs (e.g. upgrading uv causing its PATH entry to vanish). The previous fix in v2026.2.23 was raceable by concurrent mise hook-env calls; removing the cache eliminates this class of bugs completely. #​8383 by @​jdx

  • Better error when a registry tool has no supported backends -- When a tool exists in the registry but all its backends are filtered out for the current platform or configuration (e.g. imagemagick on a platform where only conda and asdf backends are registered but disabled), the error now clearly explains the situation and lists the registered backends instead of suggesting the user meant the exact tool name they already typed. #​8388 by @​jdx

Removed
  • Deprecated python.venv_auto_create setting removed -- The python.venv_auto_create and python_venv_auto_create settings have been fully removed. These were deprecated in favor of the _.python.venv configuration. If you were relying on the legacy virtualenv tool option to auto-create venvs, mise will now warn and print manual creation instructions instead. Migrate to the newer venv configuration: #​8384 by @​jdx
    [tools]
    python = { version = "3.12", _.python.venv = { path = ".venv", create = true } }
Breaking Changes
  • The python.venv_auto_create and python_venv_auto_create settings no longer exist. If you still have these in your configuration, they will be silently ignored. Use _.python.venv = { path = ".venv", create = true } in your tool configuration instead. #​8384

Full Changelog: jdx/mise@v2026.2.23...v2026.2.24

v2026.2.23: : Stricter lockfile enforcement and vfox backend options

Compare Source

This release tightens lockfile behavior in --locked mode, fixes a stale PATH cache issue with aqua-based tools, resolves intermittent panics with remote git tasks, and adds the ability to pass custom options to vfox backend plugins.

Added
  • Custom options for vfox backend plugins -- Options defined in mise.toml tool entries are now passed through to vfox backend plugins in both BackendInstall and BackendExecEnv contexts, accessible in Lua via ctx.options. This enables custom plugin use cases like controlling build parameters. #​8369 by @​Attempt3035

    [tools]
    "llvm:clang" = { version = "latest", build_cores = "22" }
    function PLUGIN:BackendInstall(ctx)
        local cores = ctx.options.build_cores
        -- use cores in your build logic
    end
  • Registry: porter -- Added Porter, a CNAB bundle authoring and management tool (github:getporter/porter). #​8380 by @​lbergnehr

  • Registry: entire -- Added entire CLI (aqua:entireio/cli). #​8378 by @​TyceHerrman

  • Registry: topgrade -- Added topgrade (aqua:topgrade-rs/topgrade), an all-in-one system upgrade tool. #​8377 by @​TyceHerrman

Fixed
  • --locked mode now strictly enforces the lockfile -- Previously, mise lock could still run while --locked was active, mise use tool@latest could bypass the lockfile, and tools missing from the lockfile would silently fall through to remote resolution. Now mise lock refuses to run in locked mode with a clear error and hint, mise use tool@latest respects the lockfile when locked, and missing tools fail fast with an actionable message instead of resolving remotely. #​8362 by @​jdx

  • Aqua tool PATH entries no longer go missing after install -- The list_bin_paths() cache could be populated with stale (empty) data before extraction finished, or by a concurrent mise hook-env call during installation. The in-memory and on-disk bin_paths caches are now cleared after an aqua tool install completes so paths are recomputed from the freshly installed files. Fixes an issue where upgrading tools like uv caused their PATH entry to vanish. #​8374 by @​jdx

  • Remote git task cache no longer panics or corrupts on concurrent access -- Replaced println!/eprintln! with non-panicking writeln! to handle EPIPE gracefully, and added file locking with clone-to-temp-then-rename to prevent concurrent cache corruption when multiple mise processes fetch the same remote git task simultaneously. #​8375 by @​vmaleze

New Contributors

Full Changelog: jdx/mise@v2026.2.22...v2026.2.23

v2026.2.22: : Outdated plugins, rename_exe fixes, and smoother installs

Compare Source

A small release adding a new way to check for outdated plugins, along with three bug fixes for archive installs, tool environment resolution, and cross-platform Ruby lockfiles.

Added
  • mise plugins ls --outdated flag -- A new -o/--outdated flag checks remote git refs in parallel and displays only plugins where the local SHA differs from the remote. Shows a table with plugin name, URL, ref, local SHA, and remote SHA. Prints "All plugins are up to date" when everything is current. #​8360 by @​jdx
    $ mise plugins ls --outdated
    Plugin  Url                                             Ref   Local    Remote
    tiny    https://github.com/mise-plugins/rtx-tiny.git    main  abc1234  def5678
Fixed
  • rename_exe works with archives containing a bin/ subdirectory -- When an archive extracts to a layout like prefix/bin/binary, the rename_exe option was silently skipped because it searched the extraction root non-recursively instead of the bin/ subdirectory where the binary actually lives. Both the GitHub-style backend and the HTTP backend now auto-detect the bin/ subdirectory as the search directory, matching the same logic used by discover_bin_paths() for PATH construction. #​8358 by @​jdx

  • Installing cargo/npm/pipx tools no longer crashes with tools = true env directives -- When [env] contained entries like NODE_VERSION = { value = "{{ tools.node.version }}", tools = true }, installing npm/cargo/pipx tools would fail with "Variable not found in context" because the referenced tools might not be installed yet. The cargo, npm, and pipx backends now skip tools = true env directive resolution during installation while still including tool paths in PATH. #​8356 by @​jdx

  • Ruby lockfile resolves correct Windows checksums -- Running mise lock on macOS/Linux now correctly resolves RubyInstaller2 binary URLs and checksums for Windows platform entries, instead of incorrectly using the MRI source tarball checksum. The lockfile generator now fetches the correct .7z asset from the oneclick/rubyinstaller2 GitHub releases for Windows targets. #​8357 by @​jdx

Changed
  • Registry: terradozer switched to GitHub fork -- The terradozer registry entry now points to github:chenrui333/terradozer (replacing the archived asdf plugin and unavailable aqua backend), and is restricted to Linux and macOS. #​8365 by @​chenrui333
New Contributors

Full Changelog: jdx/mise@v2026.2.21...v2026.2.22


Configuration

📅 Schedule: Branch creation - "before 4am on Monday" (UTC), 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.


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

Need help?

You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.

| datasource                 | package  | from       | to        |
| -------------------------- | -------- | ---------- | --------- |
| github-release-attachments | jdx/mise | v2026.2.21 | v2026.3.3 |


Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
@renovate-sh-app renovate-sh-app Bot enabled auto-merge (squash) March 9, 2026 01:39
@renovate-sh-app renovate-sh-app Bot merged commit 5ea6a07 into main Mar 9, 2026
9 checks passed
@renovate-sh-app renovate-sh-app Bot deleted the grafanarenovatebot/mise branch March 9, 2026 17:33
This was referenced Apr 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant