Skip to content

deps: update dependency jdx/mise to v2026.3.12#1363

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/jdx-mise-2026.x
Open

deps: update dependency jdx/mise to v2026.3.12#1363
renovate[bot] wants to merge 1 commit intomainfrom
renovate/jdx-mise-2026.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 13, 2026

This PR contains the following updates:

Package Update Change
jdx/mise patch 2026.3.82026.3.12

Release Notes

jdx/mise (jdx/mise)

v2026.3.12: : Supply chain protection for lockfile upgrades

Compare Source

A small but important release that adds supply chain protection for lockfile upgrades and fixes zsh completions broken by the usage v3.1.0 update. This release also includes the binary assets that were missing from v2026.3.11 due to the completions issue.

Security

  • Block GitHub tool upgrades when provenance is lost -- When upgrading a github: backend tool, mise now checks whether the prior locked version had provenance verification (e.g., GitHub Attestations). If the new version lacks provenance that the old version had, the upgrade is blocked with an error indicating a potential supply chain attack. The old provenance-verified lockfile entry is preserved, and the error includes both versions for easy investigation. This check applies to mise lock, mise install, and mise use. #​8706 by @​jdx

    Example error:

    github:example/tool@2.0.0 has no provenance verification on linux-x64,
    but github:example/tool@1.5.0 had github-attestations. This could indicate
    a supply chain attack. Verify the release is authentic before proceeding.
    

Fixed

  • Zsh completions updated for usage v3.1.0 -- The prerendered zsh completion script has been regenerated to match the new output format from usage v3.1.0, which switched from _arguments to _describe and changed quoting behavior. This also fixes the binary build failure that prevented v2026.3.11 from publishing release assets. #​8715 by @​jdx

Full Changelog: jdx/mise@v2026.3.11...v2026.3.12

v2026.3.11

Compare Source

Note: This release has no binary assets due to a CI failure caused by a breaking change in usage v3.1.0. The fix is in #​8715. All changes below are included in the next release.

This release adds --skip-tools for faster task execution, GitHub token auto-detection from gh CLI, optional args/env fields in task run entries, and fixes across lockfiles, shims, tasks, and environment handling.

Highlights

  • mise run --skip-tools -- Skip tool installation when running tasks, useful when you know tools are already installed and want faster execution. #​8699 by @​jdx
  • GitHub token auto-detection from gh CLI -- mise now reads GitHub tokens from gh's hosts.yml config, so authenticated GitHub API requests work automatically if you're logged in with gh auth login. #​8692 by @​jdx
  • Optional args and env in task run entries -- Task run entries now support optional args and env fields for more flexible task configuration. #​8687 by @​jdx

Added

  • mise run --skip-tools -- Skip tool installation when running tasks. #​8699 by @​jdx
  • GitHub token from gh CLI -- Automatically read tokens from gh CLI's hosts.yml config. #​8692 by @​jdx
  • Task run entries support args and env -- Optional fields for more flexible task definitions. #​8687 by @​jdx
  • vfox: try_get, try_head, try_download_file -- Non-failing HTTP methods for Lua plugins. #​8697 by @​jdx
  • New registry tools:

Fixed

  • Node: expand tilde in default_packages_file path -- ~/.default-node-packages now resolves correctly. #​8709 by @​jdx
  • Lockfile: skip global config lockfile by default -- Global config no longer generates a lockfile unless explicitly configured. #​8707 by @​jdx
  • Lockfile: respect existing platforms when running mise lock -- Existing platform entries in lockfiles are preserved instead of being overwritten. #​8708 by @​jdx
  • GitHub: rename correct binary when archive contains multiple executables -- Archives with multiple binaries no longer rename the wrong one. #​8700 by @​jdx
  • Task: include idiomatic version files in monorepo task toolset -- .node-version, .python-version, etc. are now picked up in monorepo task directories. #​8702 by @​jdx
  • Task: strip inline args when validating run.tasks references -- Task references with inline args (e.g. "build --release") no longer fail validation. #​8701 by @​jdx
  • Task: inherit task_config.dir for included TOML and file tasks -- Included tasks now correctly inherit the configured working directory. #​8689 by @​jdx
  • Task: improve error message when task files are not executable -- Clearer error when a file task lacks execute permission. #​8705 by @​jdx
  • Task: improve usage spec element support -- Better handling of usage spec elements in task definitions. #​8623 by @​nkakouros
  • Install: skip redundant provenance verification when lockfile has integrity data -- Avoids duplicate verification work. #​8688 by @​jdx
  • Install: skip GitHub API calls for aqua tools in --locked mode -- Locked installs no longer make unnecessary API calls. #​8679 by @​jdx
  • Shim: detect shims by checking shims directory instead of binary name -- Fixes edge cases where shim detection failed. #​8694 by @​jdx
  • Shell: error when no version specified instead of silent no-op -- mise shell node now shows an error instead of doing nothing. #​8693 by @​jdx
  • Env: support multiple --env/-E flags -- Multiple environment overrides can now be specified. #​8686 by @​jdx
  • Env: make module vars available in Tera template context -- Environment variables from env plugins are now accessible in Tera templates. #​8682 by @​victor-founder
  • Config: recognize SSH and other non-HTTPS URLs in get_repo_url -- SSH-style git URLs are now handled correctly. #​8666 by @​modestman
  • Implode: include system data dir in cleanup -- mise implode now removes system-level data directories. #​8696 by @​jdx
  • Respect MISE_COLOR=0 for error output -- color_eyre error formatting now honors the color setting. #​8690 by @​jdx
  • Windows: add usage tool registry support -- #​8713 by @​jdx

New Contributors

Full Changelog: jdx/mise@v2026.3.10...v2026.3.11

v2026.3.10: : Security fix for .tool-versions templates, Python checksum verification, and 15+ bug fixes

Compare Source

This release closes a security gap where .tool-versions files with Tera templates could execute arbitrary commands without a trust check, adds checksum verification for precompiled Python downloads, and ships over 15 bug fixes across tasks, lockfiles, the Rust plugin, bootstrap scripts, and more.

Highlights

  • Security: trust check for .tool-versions Tera templates -- .tool-versions files were processed through Tera's render_str() with the exec() function available, allowing arbitrary command execution without any trust verification. A malicious .tool-versions in a cloned repo could silently execute code when a user with mise shell activation cd'd into the directory. Template syntax in .tool-versions now requires mise trust first; plain files continue to work without trust.
  • Python checksum verification for precompiled binaries -- Precompiled Python downloads from astral-sh/python-build-standalone are now verified against lockfile checksums at install time, matching the behavior of other core plugins.
  • Python freethreaded build exclusion -- Freethreaded Python builds (e.g. Python 3.14+) are now excluded from precompiled selection by default, fixing "missing lib directory" errors. Set python.precompiled_flavor explicitly if you want freethreaded builds.
  • mise doctor PATH ordering check -- mise doctor now warns when non-mise directories appear before mise-managed tool paths in PATH, helping diagnose tool shadowing issues.

Security

  • Require trust check for .tool-versions Tera templates -- When template syntax ({{, {%, {#) is detected in a .tool-versions file, mise now requires mise trust before processing it. Plain .tool-versions files without templates are unaffected. #​8675 by @​jdx

Added

Fixed

  • Python: verify checksums for precompiled binary downloads -- Precompiled Python downloads are now checked against lockfile checksums between HTTP download and tarball extraction, preventing corrupted or tampered downloads from being silently accepted. #​8593 by @​malept
  • Python: exclude freethreaded builds from precompiled selection -- Freethreaded Python builds (e.g. cpython-3.14.3-freethreaded) use lib/python3.14t/ instead of lib/python3.14/, causing installation failures. These are now filtered out by default unless python.precompiled_flavor is explicitly set to a freethreaded variant. #​8672 by @​jdx
  • Config: resolve trust hash collision for same-name directories -- In paranoid mode, configs sharing the same parent directory leaf name (e.g. /projectA/infra/mise.toml and /projectB/infra/mise.toml) would map to a single hash file, silently breaking trust verification. The filename extension is now appended instead of replaced. Previously trusted configs may need a one-time mise trust after upgrading. #​8628 by @​tdragon
  • Lockfile: resolve symlinks when updating -- If a lockfile is a symlink, mise now updates the target file instead of replacing the symlink with a regular file. #​8589 by @​chancez
  • Rust: resolve relative CARGO_HOME/RUSTUP_HOME to absolute paths -- When CARGO_HOME or RUSTUP_HOME is set to a relative path (e.g. .cargo via [env]), the paths are now resolved to absolute before use, preventing broken PATH entries like undefined/bin after changing directories. #​8604 by @​simonepri
  • Bootstrap: preserve argv[0] for shim dispatch -- mise generate bootstrap now emits exec -a "$0" instead of plain exec, preserving the original invocation name so that shim symlinks (e.g. claude -> mise) dispatch correctly. #​8521 by @​tak848
  • Installer: normalize current version before comparison -- The standalone installer now strips the v prefix from MISE_CURRENT_VERSION before comparisons, so embedded checksums and the current-release CDN path are used correctly. #​8649 by @​tak848
  • Tasks: global file tasks not properly marked as such -- #​8618 by @​roele
  • Tasks: handle broken pipe in mise tasks ls -- Piping task output (e.g. mise tasks ls | head) no longer panics with EPIPE. #​8608 by @​vmaleze
  • Tasks: correctly resolve _default files with extensions -- test/_default.sh is now correctly loaded as the test task instead of test:_default. #​8646 by @​youta1119
  • Tasks: fix argument completion with flags in zsh -- Completing task arguments after flags (e.g. mise run build -- -c <TAB>) no longer produces errors. #​8601 by @​KevSlashNull
  • Git: use "origin" as remote name -- Cloned registries now consistently use "origin" as the remote name, fixing fetch failures in some configurations. #​8626 by @​bentinata
  • Shared tools: fix failing rebuild of runtime symlinks -- Installing tools with --system no longer fails when rebuilding runtime symlinks due to incorrect install path resolution. #​8647 by @​roele
  • Flutter: fix version_expr Tera parser collision -- Added spaces around the current element operator in Flutter's version_expr to prevent Tera parser errors. #​8616 by @​roele

Changed

  • Removed hidden --prefix and --interleave flags from mise run -- These flags were hidden in December 2024 when --output was introduced as their replacement. Their short forms (-p, -i) could silently consume flags intended for tasks. Use --output prefix or --output interleave instead. #​8669 by @​nkakouros

Breaking Changes

  • .tool-versions with Tera templates now require trust -- If you have .tool-versions files using template syntax ({{, {%, {#), you will need to run mise trust in those directories. Plain .tool-versions files are unaffected. #​8675
  • Trust hash files regenerated -- Due to the hash collision fix, previously trusted configs in paranoid mode may need a one-time mise trust after upgrading. #​8628
  • --prefix/-p and --interleave/-i removed from mise run -- Use --output prefix or --output interleave instead (available since December 2024). #​8669

New Contributors

Full Changelog: jdx/mise@v2026.3.9...v2026.3.10

v2026.3.9: : Shared install directories, secret redaction, and better Ctrl-C handling

Compare Source

This release introduces experimental shared install directories for multi-user environments, improves secret redaction in mise set and task output, and fixes several issues with Ctrl-C handling, tool auto-installation before prepare steps, and aqua symlink_bins behavior.

Highlights

  • Shared and system install directories -- Pre-install tools to /usr/local/share/mise/installs (or a custom path) so all users on a machine or in a container can share them without re-downloading. Ideal for Docker images, devcontainers, and bastion hosts.
  • Secret redaction in mise set -- Environment variables marked redact = true or matching redactions patterns are now hidden in mise set output by default, with --no-redact to override.
  • Faster latest-version resolution for GitHub tools -- The GitHub backend now hits the releases/latest API endpoint directly instead of paginating through all releases, which is significantly faster for repositories with many pre-releases.

Added

  • [experimental] Shared and system install directories -- mise install --system installs tools to /usr/local/share/mise/installs (or MISE_SYSTEM_DATA_DIR/installs), where every user's mise instance will find them automatically. mise install --shared <path> installs to a custom shared directory. Additional read-only lookup directories can be configured via the shared_install_dirs setting or MISE_SHARED_INSTALL_DIRS (colon-separated). Shared versions appear in mise ls with (system) or (shared) labels. See the updated Docker cookbook for usage examples. #​8581 by @​jdx

  • GitHub backend uses releases/latest endpoint -- Resolving the latest stable version for GitHub-hosted tools now calls the dedicated releases/latest API endpoint instead of paginating through all releases. This is especially helpful for repositories with many pre-releases (e.g. unikraft/kraftkit) where the old approach required fetching multiple pages. Falls back to the previous behavior if the endpoint fails or the result doesn't match a configured version_prefix. #​8516 by @​roele

  • vfox tool plugins record provenance in lockfiles -- mise lock and mise install now record and enforce supply-chain provenance (GitHub Attestations, SLSA, Cosign) for vfox tool plugins, bringing them to parity with aqua and github backends for downgrade-attack detection. #​8544 by @​malept

Fixed

  • mise set now redacts secrets by default -- Values with redact = true or matching redactions glob patterns are shown as [redacted] in mise set output. Age-encrypted values default to redacted unless explicitly redact = false. Use --no-redact to reveal raw values. Task-specific env vars from env._.file or task-level redact = true are also now properly redacted in mise run output. #​8583 by @​jdx

  • Aqua symlink_bins now works for packages without a files field -- When an aqua registry entry has no files field, symlink_bins = true previously left .mise-bins empty, making the tool invisible on PATH. Now the inferred main binary is included in the symlink directory, matching the existing install-time fallback logic. #​8550 by @​AlexanderTheGrey

  • Ctrl-C reliably interrupts tool downloads during mise run -- Previously, mise run disabled Ctrl-C exit handling before tool installation began, so pressing Ctrl-C during a download was silently ignored. Now Ctrl-C exits immediately during downloads, and during task execution the first Ctrl-C kills child processes while a second Ctrl-C force-exits mise. #​8571 by @​jdx

  • File task headers now allow spaces around = -- Task header lines like #MISE env._.file = "env.yaml" (with spaces around =) are now parsed correctly. Previously only #MISE env._.file="env.yaml" (no spaces) was recognized. #​8574 by @​roele

  • mise prepare installs config tools before running prepare steps -- On clean machines, prepare steps that depend on tools declared in [tools] (e.g. uv) would fail because the tools hadn't been installed yet. Now both mise prepare and mise run install all configured tools before executing prepare commands. #​8582 by @​jdx

Changed

  • MISE_SYSTEM_DIR has been renamed to MISE_SYSTEM_CONFIG_DIR for clarity alongside the new MISE_SYSTEM_DATA_DIR. The old name is still supported as a legacy alias. #​8581

New Contributors

Full Changelog: jdx/mise@v2026.3.8...v2026.3.9


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team as a code owner March 13, 2026 22:40
@renovate renovate bot force-pushed the renovate/jdx-mise-2026.x branch 10 times, most recently from 3644972 to c52eb64 Compare March 21, 2026 17:26
@renovate renovate bot changed the title deps: update dependency jdx/mise to v2026.3.9 deps: update dependency jdx/mise to v2026.3.10 Mar 21, 2026
@renovate renovate bot force-pushed the renovate/jdx-mise-2026.x branch from c52eb64 to 1dab523 Compare March 23, 2026 01:25
@renovate renovate bot changed the title deps: update dependency jdx/mise to v2026.3.10 deps: update dependency jdx/mise to v2026.3.12 Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants