Skip to content

fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.17 )#28

Merged
renovate[bot] merged 1 commit intomainfrom
renovate/mise
May 3, 2026
Merged

fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.17 )#28
renovate[bot] merged 1 commit intomainfrom
renovate/mise

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Apr 26, 2026

This PR contains the following updates:

Package Update Change Pending
jdx/mise patch 2026.4.92026.4.17 v2026.4.28 (+9)

Release Notes

jdx/mise (jdx/mise)

v2026.4.17: : install_before fixes, lockfile repair, and new registry tools

Compare Source

A fix-heavy release that addresses several install_before edge cases across npm, pipx, and backend latest lookups, repairs lockfile generation for aqua tools with custom version prefixes, and adds six new tools to the registry.

Highlights

  • install_before now works consistently across backends -- The date-based version cutoff is now respected in direct latest lookups, npm no longer drifts by a day due to double timestamp sampling, and pipx/uv installs forward the cutoff via --exclude-newer / --uploaded-prior-to.
  • Lockfile fix for aqua tools with version prefixes -- mise lock now correctly propagates version_prefix (e.g. jq-) to GitHub release lookups, fixing empty platform URLs that broke --locked mode.
  • Deprecation warnings for legacy config keys and mise b -- env_file, dotenv, env_path, and the mise b shorthand now emit deprecation warnings with removal scheduled for 2027.4.0.

Fixed

  • install_before respected in backend latest lookups -- Direct calls like mise latest npm:prettier now apply the effective install_before cutoff, not just install/upgrade flows. #​9193 by @​risu729

  • tool@latest routes through stable lookup -- An explicit @latest suffix now follows the same backend-specific fast path as an unqualified tool name, so both forms return the same version. #​9228 by @​risu729

  • npm install_before day drift -- Fixed an off-by-one where install_before = "3d" could compute --min-release-age=4 due to a second Timestamp::now() call drifting past the day boundary. A stable per-process timestamp and a 60-second tolerance window eliminate the issue. #​9157 by @​risu729

  • install_before forwarded to pipx and uv installs -- pipx: tools now pass --exclude-newer to uv and --uploaded-prior-to (via --pip-args) to pipx, so Python package installs respect the date cutoff. #​9190 by @​risu729

  • Warning for old bun/pnpm with install_before -- When install_before is active and the detected bun or pnpm version is below the minimum that supports release-age flags, mise now warns instead of silently ignoring the cutoff. #​9232 by @​risu729

  • Lockfile version prefix propagation -- mise lock now uses version_prefix when looking up GitHub releases for aqua tools, fixing empty platform URLs that caused --locked installs to fail. #​9242 by @​effati

  • shfmt available on Windows -- The shfmt registry entry no longer restricts to Linux/macOS, so mise use shfmt works on Windows via the aqua backend. #​9191 by @​zeitlinger

  • GitLab expired OAuth2 token warning -- When mise reads a GitLab token from glab's config and the OAuth2 expiry has passed, it now warns the user to refresh (e.g. glab api user) instead of failing silently. #​9195 by @​stanhu

  • GitHub auth skipped on release asset downloads -- Token lookup is now skipped for GitHub release asset CDN hosts (objects.githubusercontent.com, etc.), avoiding unnecessary authentication failures on public downloads. #​9060 by @​risu729

  • Empty enable_tools disables all tools -- An explicitly empty enable_tools list now means "disable all tools" rather than "no filter", matching user expectations as an allowlist. #​9108 by @​risu729

  • Deprecation warnings for legacy env keys -- env_file, dotenv, and env_path now warn when used, directing users to env._.file and env._.path. Removal is scheduled for 2027.4.0. #​9205 by @​risu729

  • mise b shorthand deprecated -- The mise b alias for mise backends now emits a deprecation warning with removal scheduled for 2027.4.0. #​9234 by @​risu729

Added

New Contributors

Full Changelog: jdx/mise@v2026.4.16...v2026.4.17

v2026.4.16: : Tera templates in inline tasks, raw_args passthrough, and runtime symlink paths

Compare Source

A feature-rich release with two new task runner capabilities, an important fix for how mise exposes tool paths in the environment, and a batch of task system improvements.

Inline table run tasks (run = [{ task = "...", args = [...] }]) now support Tera templates, so you can pass parsed usage arguments into sub-task calls. A new raw_args option lets proxy tasks forward all flags -- including --help -- directly to the underlying command without mise intercepting them. On the tooling side, fuzzy version requests like python = "3.14" now put the stable runtime symlink on PATH instead of the resolved patch directory, so virtualenvs and other tools that cache interpreter paths survive patch upgrades.

Highlights

  • Tera templates in inline run tasks -- args and env in table-style run entries can now use {{usage.*}} variables, connecting usage-parsed arguments to sub-task invocations.
  • raw_args for proxy tasks -- Tasks that wrap tools with their own CLI (Django manage.py, Next.js, argparse scripts) can set raw_args = true so mise never intercepts --help or rewrites flags.
  • Runtime symlink paths for fuzzy versions -- PATH entries now use the requested-version symlink (e.g. .../installs/python/3.14/bin) rather than the concrete patch directory, so downstream tools that cache paths are not broken by patch upgrades.
  • TOML task metadata merges into file tasks -- A [tasks.my-script] block in mise.toml now overlays env, description, dir, and other metadata onto a same-named file task instead of being silently dropped.

Added

  • Tera template support for inline table run tasks -- args and env values in run = [{ task = "greet", args = ["{{usage.name}}"] }] are now rendered through the Tera engine, allowing usage-parsed arguments and environment variables to flow into sub-task calls. #​9079 by @​iamkroot

  • raw_args task option -- Set raw_args = true on a task definition (TOML or file header) to skip mise's argument parsing entirely. All arguments, including --help and -h, are forwarded verbatim to the underlying command. Additionally, mise run task -- --help now bypasses the usage parser even without raw_args, restoring the documented escape hatch. #​9118 by @​jdx

    [tasks.manage]
    raw_args = true
    run = 'python manage.py'
    mise run manage --help            # forwarded to manage.py
    mise run manage migrate --fake    # all flags reach manage.py unchanged
  • .perl-version support for perl -- The perl registry entry now recognizes .perl-version files for both auto-detection and idiomatic version file reading (when idiomatic_version_file_enable_tools includes "perl"), matching the pattern used by plenv. #​9102 by @​ergofriend

  • Registry: ibmcloud -- IBM Cloud CLI is now available via mise use ibmcloud. #​9139 by @​dnwe

  • Registry: rush -- rush, a cross-platform tool for executing jobs in parallel (similar to GNU parallel), is now available via mise use rush. #​9146 by @​jdx

Fixed

  • Runtime symlink paths for fuzzy versions -- When a fuzzy version like python = "3.14" resolved to 3.14.4, PATH used the concrete install directory (.../installs/python/3.14.4/bin). Now mise uses the stable requested-version symlink (.../installs/python/3.14/bin), so tools that cache interpreter paths (e.g. virtualenvs) survive patch upgrades without breaking. #​9143 by @​jdx

  • Go subpath packages reinstalling on every upgrade -- A stale workaround in the Go backend overrode the version to "latest" for subpath packages, causing mise up to reinstall them every time because the resolved version directory didn't match. This workaround has been removed now that proxy-based resolution handles subpath packages correctly. #​9135 by @​c22

  • Missing task suggestions -- mise run <missing-task> now suggests similar task names and shows a compact table of available tasks (up to 20), making it easier to find the right name. #​9141 by @​jdx

  • Task prefix colors no longer use red/yellow -- Red and yellow were removed from the task prefix color palette because they could be confused with errors and warnings. The palette now uses 16 styles: 4 base colors (blue, magenta, cyan, green) combined with 4 modifiers (regular, bold, dim, bright). #​8782 by @​lechuckcaptain

  • TOML task block merged into same-named file task -- A [tasks.my-script] block in mise.toml was silently discarded when a file task with the same name existed. Now the TOML block overlays env, description, dir, aliases, depends, and other metadata onto the file task. Additionally, mise tasks ls --json now reports the resolved task directory instead of null. #​9147 by @​jdx

  • npm install_before respected for dist-tag resolution -- mise latest and similar commands that resolve npm dist-tags now honor the install_before date filter instead of always returning the absolute latest version. #​9145 by @​webkaz

  • GitHub attestation verification uses full token chain -- Attestation verification was only using the GITHUB_TOKEN environment variable, ignoring tokens configured via credential_command, github_tokens.toml, the gh CLI, or git credential fill. This caused unauthenticated rate-limit hits even when a valid token was configured. #​9154 by @​jdx

  • Tool option serialization round-trips correctly -- Comma-containing string values in tool options (e.g. [tool_options]) no longer get split into fake extra keys during re-serialization, and empty brackets are no longer emitted when all remaining options are filtered out. #​9124 by @​atharvasingh7007

  • vfox backend falls back to absolute bin path -- When a vfox plugin does not set env_keys, mise now falls back to the absolute bin path instead of failing. #​9151 by @​80avin

  • mise self-update available in stub builds -- When compiled without the self_update Cargo feature, the subcommand was completely missing from the CLI. It now shows a stub message explaining the feature is unavailable. #​9144 by @​salim-b

New Contributors

Full Changelog: jdx/mise@v2026.4.15...v2026.4.16

v2026.4.15: : Windows path separator fix and improved GitHub token detection

Compare Source

A small release with an important Windows fix and an improved GitHub rate-limit warning. Path-list environment variables now use the correct OS-native separator on Windows, and the 403 rate-limit warning now checks all configured GitHub token sources instead of only the GITHUB_TOKEN environment variable.

Fixed
  • Path-list environment variables broken on Windows -- Settings that accept colon-separated path lists (MISE_TRUSTED_CONFIG_PATHS, MISE_IGNORED_CONFIG_PATHS, MISE_CEILING_PATHS, MISE_SHARED_INSTALL_DIRS, MISE_TASK_DISABLE_PATHS) always split on :, which conflicts with Windows drive letters (e.g. C:\foo). These settings now use the OS-native path separator (: on Unix, ; on Windows) via std::env::split_paths, matching how PATH itself is handled. #​9058 by @​richardthe3rd

  • GitHub 403 warning shown even when a token is configured -- The rate-limit warning that appears on GitHub API 403 errors previously only checked the GITHUB_TOKEN environment variable. Users who configured a token via gh CLI, github_tokens.toml, credential_command, or git credential would still see the misleading "GITHUB_TOKEN is not set" hint. The warning now checks all supported token sources and links to the GitHub tokens documentation. #​9121 by @​jdx

Added
  • Registry: podlet -- podlet generates Podman Quadlet files from a Podman command, compose file, or existing object. #​9134 by @​tony-sol
  • Registry: maturin -- maturin builds and publishes Rust crates as Python packages with pyo3, cffi, and uniffi bindings. #​9113 by @​Bing-su
New Contributors

Full Changelog: jdx/mise@v2026.4.14...v2026.4.15

v2026.4.14: : Fix GitHub attestation verification for some tools

Compare Source

A small patch release that fixes GitHub artifact attestation verification failures affecting some tools installed via the github: backend.

Fixed

  • GitHub artifact attestation verification failing for some tools -- Tools installed via the github: backend that use GitHub release attestations (e.g. github:jdx/communique@0.1.9, github:jdx/fnox@1.20.0) could fail verification because the upstream sigstore-verification library did not handle GitHub release attestation certificates whose Subject Alternative Name (SAN) URL lacked a trailing slash. The dependency has been bumped from 0.2.3 to 0.2.5, which includes the upstream fix. #​9128 by @​jdx

Full Changelog: jdx/mise@v2026.4.13...v2026.4.14

v2026.4.13: : Remote version cache, Go install_before, and task tool objects

Compare Source

This release fixes several backend and schema edge cases, including stale GitHub/GitLab/Forgejo version caches, go: module install_before filtering, vfox plugins pinned to Git commit hashes, and task-local tool options.

Highlights

  • Remote version cache settings now apply consistently to GitHub, GitLab, and Forgejo backends, so users can bypass stale release data when needed.
  • go: module versions now carry release timestamps, allowing install_before to filter them correctly.
  • Task-level tools now accepts object syntax, matching top-level tool declarations for options like Rust targets.

Added

  • Object syntax for task-level tools -- Task-local tools entries now support map/object values in addition to strings, matching top-level [tools] behavior. This allows task-specific tool options such as Rust cross-compilation targets without requiring those options globally. #​9087 by @​Binlogo

    [tasks.example]
    tools = { rust = { version = "nightly-2024-12-14", targets = "aarch64-linux-android" } }

Fixed

  • MISE_FETCH_REMOTE_VERSIONS_CACHE ignored by GitHub, GitLab, and Forgejo backends -- These backends previously hardcoded a daily API cache duration, ignoring fetch_remote_versions_cache, MISE_FETCH_REMOTE_VERSIONS_CACHE=0, and prefer_offline. They now use the shared setting, matching other backends and allowing users to bypass stale release caches. #​9096 by @​mcncl

  • go: module versions ignored install_before -- The Go backend now populates version metadata with release timestamps from the module proxy and go list -m -json, allowing install_before to filter module versions correctly instead of falling back to untimestamped candidates. #​9097 by @​mariusvniekerk

  • vfox plugins pinned to Git commit hashes in mise.toml -- mise install could fail for vfox plugins declared with Git URLs and commit hashes because ensure_installed did not share the same install path as mise plugin install. vfox plugin installation now reuses the plugin install logic so both flows behave consistently. #​9099 by @​Oyami-Srk

  • Schema support for OS/architecture filters -- The JSON schemas now share reusable tool os filter definitions, including compound os/arch entries such as macos/arm64 and linux/x64, across top-level tools and task-local tools. #​9095 by @​risu729

Changed

  • cargo-deny advisory checks unblocked -- Removed a stale RustSec ignore, updated rustls-webpki on the modern rustls stack, and adjusted advisory ignores for the older transitive AWS rustls dependency chain so advisory checks can pass again. #​9112 by @​jdx

New Contributors

Full Changelog: jdx/mise@v2026.4.12...v2026.4.13

v2026.4.12: : OS/arch filtering, task confirmation defaults, and npm supply chain improvements

Compare Source

This release adds OS/architecture compound filtering for tool configuration, lets task confirmation prompts default to "no" for destructive actions, and upgrades npm supply chain protection to use the recommended --min-release-age flag. It also fixes several bugs including a panic on empty config filename overrides and circular shim symlinks.

Highlights

  • Tool os field now supports os/arch compound entries like "macos/arm64" or "linux/x64", letting you restrict tools to specific platform and architecture combinations.
  • Task confirm can now default to "no", so destructive tasks require the user to explicitly opt in rather than just pressing Enter.
  • npm supply chain protection now uses the purpose-built --min-release-age flag on npm 11.10.0+, aligning with npm's recommended approach.

Added

  • OS/architecture compound syntax in tool filtering -- The os field on tool entries now accepts os/arch entries (e.g. os = ["linux", "macos/arm64"]). When an entry contains /, both the OS and architecture must match. Plain OS entries continue to match any architecture. OS aliases (darwin to macos) and arch aliases (aarch64 to arm64, x86_64/amd64 to x64) are normalized automatically. #​9088 by @​RobertDeRose

    [tools]
    # Install on all Linux machines and Apple Silicon Macs, but skip Intel Macs
    hk = { version = "latest", os = ["linux", "macos/arm64"] }
  • Task confirmation default -- The confirm field on tasks now accepts a map with message and default keys, allowing you to set whether the prompt defaults to "yes" or "no". This is useful for destructive tasks where you want the user to explicitly confirm. The existing string syntax continues to work and defaults to "yes" for backwards compatibility. #​9089 by @​roele

    [tasks.release]
    confirm = { message = "Are you sure you want to cut a release?", default = "no" }
    run = "scripts/release.sh"
  • npm --min-release-age for supply chain protection -- When install_before is configured, mise now uses npm's --min-release-age=<days> flag for npm 11.10.0+, which is the flag npm recommends for supply chain protection. Older npm versions continue to use --before. Sub-day windows also fall back to --before since --min-release-age is day-granular. #​9072 by @​webkaz

  • New registry entries -- Added openfga (#​9084 by @​mnm364), copilot (#​9082 by @​risu729), and trzsz-go (#​9083 by @​ZeroAurora).

Fixed

  • Panic on empty MISE_OVERRIDE_CONFIG_FILENAMES -- Setting MISE_OVERRIDE_CONFIG_FILENAMES="" (e.g. to clear it for a child process) caused a panic because the empty string was injected as a config path, which resolved to the filesystem root and had no parent directory. Empty segments from empty strings, leading/trailing colons, and consecutive colons are now filtered out. #​9076 by @​baby-joel

  • Circular shim symlinks when shims are on PATH -- When mise activate --shims put the shims directory on PATH and a mise shim existed (e.g. from having core:rust in the toolset after a cargo install), reshim would create shims pointing to the mise shim instead of the real binary, including a circular mise to mise symlink that broke all shims. doctor would also falsely report all shims as "missing". Both now use which_no_shims to resolve the real mise binary. #​9071 by @​kevinswiber

  • __MISE_EXE not exported in bash activate -- The __MISE_EXE variable was not exported in the bash activation script, so child shells couldn't access it and the mise function failed. Additionally, when ARGV0 was a bare name (e.g. mise) instead of an absolute path, PATH changes could break execution. The variable is now properly exported and bare names are resolved via which. #​9081 by @​fru1tworld

  • Aliased installs sharing a backend were deduplicated -- When multiple tool aliases (e.g. iii and iii-console) resolved to the same backend and version (e.g. github:iii-hq/iii@latest), the install scheduler collapsed them into a single job and skipped the second install. The dependency graph now keys on the configured tool name plus version, so alias-specific options like asset_pattern and bin_path are preserved. #​9093 by @​jdx

New Contributors

Full Changelog: jdx/mise@v2026.4.11...v2026.4.12

v2026.4.11: : Task dependency templates and npm semver range support

Compare Source

A small release with two meaningful bug fixes: task dependency templates with {{usage.*}} references now resolve correctly even when the task is called without arguments, and package.json devEngines version fields are now parsed as full npm semver ranges instead of being simplified into prefix matches.

Fixed

  • Task dependency templates now render without arguments -- When a task declared dependencies using {{usage.*}} templates (e.g. depends = ["child {{usage.app}}"]), those templates were only rendered if the task received explicit CLI arguments. If the usage spec defined defaults but no args were passed, the templates were left unresolved and the dependencies were silently dropped, causing the task to run with no dependencies at all. The guard now checks whether dependencies contain usage references rather than whether args are non-empty. #​9062 by @​MatthiasGrandl

  • npm semver ranges in devEngines -- mise previously simplified package.json devEngines version fields by stripping range operators (>=, ^, ~) and trimming trailing .0 segments to produce a prefix for fuzzy matching. This was lossy and incorrect in many cases (e.g. ^20.0.1 was simplified to 20, matching 20.0.0). mise now preserves the original range string and resolves it against available versions using proper npm semver semantics via the nodejs-semver crate. Compound ranges (>=20 <21 || >=22), caret/tilde ranges, and wildcard segments all work correctly. #​9061 by @​risu729

  • Documentation typo in Go backend -- The docs for Go build tags incorrectly showed --tags instead of the correct -tags flag. #​9065 by @​dolmen

New Contributors

Full Changelog: jdx/mise@v2026.4.10...v2026.4.11

v2026.4.10: : Fix spurious warnings from postinstall hooks running tasks

Compare Source

A small patch release that fixes a single bug affecting tool postinstall hooks.

Fixed
  • Spurious warnings from postinstall hooks running tasks -- When a tool-level postinstall hook ran a nested mise run, the child process inherited the MISE_TOOL_VERSION environment variable set during hooks. ToolsetBuilder was incorrectly parsing this as a request to install a tool named tool at the given version via the MISE_<TOOL>_VERSION convention, producing spurious registry warnings before the task executed. mise now ignores MISE_TOOL_VERSION in the same way it already ignored MISE_INSTALL_VERSION. #​9050 by @​risu729

Full Changelog: jdx/mise@v2026.4.9...v2026.4.10


Configuration

📅 Schedule: (in timezone Europe/Amsterdam)

  • Branch creation
    • "every weekend,on Friday"
  • 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

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

@renovate renovate Bot requested a review from DevSecNinja as a code owner April 26, 2026 12:28
@renovate renovate Bot force-pushed the renovate/mise branch from 32df168 to 79348f3 Compare April 27, 2026 14:03
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.10 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.11 ) Apr 27, 2026
@renovate renovate Bot force-pushed the renovate/mise branch from 79348f3 to 9314f01 Compare April 29, 2026 13:41
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.11 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.12 ) Apr 29, 2026
@renovate renovate Bot force-pushed the renovate/mise branch from 9314f01 to aedc2e5 Compare April 29, 2026 21:56
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.12 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.14 ) Apr 29, 2026
@renovate renovate Bot force-pushed the renovate/mise branch from aedc2e5 to afd5e95 Compare April 30, 2026 15:41
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.14 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.15 ) Apr 30, 2026
@renovate renovate Bot force-pushed the renovate/mise branch from afd5e95 to d52c15e Compare April 30, 2026 18:13
@renovate renovate Bot added the merge: auto PR is eligible for automerge label Apr 30, 2026
@renovate renovate Bot force-pushed the renovate/mise branch 16 times, most recently from 1366477 to f31a76c Compare May 1, 2026 08:25
@renovate renovate Bot force-pushed the renovate/mise branch 6 times, most recently from 75f854b to a8ef700 Compare May 1, 2026 14:06
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.15 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.16 ) May 1, 2026
@renovate renovate Bot force-pushed the renovate/mise branch 2 times, most recently from e1f29ad to f0a4229 Compare May 2, 2026 19:50
@renovate renovate Bot changed the title fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.16 ) fix(github-release): update release jdx/mise ( v2026.4.9 ➔ v2026.4.17 ) May 2, 2026
@renovate renovate Bot force-pushed the renovate/mise branch 5 times, most recently from 340c7c8 to aaf4e07 Compare May 3, 2026 07:57
@renovate renovate Bot force-pushed the renovate/mise branch from aaf4e07 to c4af7f9 Compare May 3, 2026 07:58
@renovate renovate Bot merged commit 1937cb6 into main May 3, 2026
15 checks passed
@renovate renovate Bot deleted the renovate/mise branch May 3, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant