Skip to content

Update dependency jdx/mise to v2026#1350

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

Update dependency jdx/mise to v2026#1350
renovate[bot] wants to merge 1 commit into
v2from
renovate/jdx-mise-2026.x

Conversation

@renovate

@renovate renovate Bot commented Jan 7, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
jdx/mise major v2024.7.1v2026.7.0

Release Notes

jdx/mise (jdx/mise)

v2026.7.0: : Shell expansion by default, monorepo lockfiles, and task usage mounts

Compare Source

Added
  • env: enable shell expansion by default; opt out with env_shell_expand = false (#​10702 by @​jdx).
  • monorepo: mise install --monorepo and mise ls --monorepo install/list the union of tools across [monorepo].config_roots; new tri-state [monorepo].lockfile for unified root lockfiles (#​10707 by @​jdx).
  • task: root-level #USAGE mount ... in file tasks (including shorthand mount "cmd") hoists mounted usage specs onto the generated task command (#​10704 by @​jdx).
  • github: per-tool github_attestations option to disable GitHub Artifact Attestation verification for a single tool (#​10694 by @​jdx).
  • upgrade: minimum_release_age warnings now include the release date, when the version becomes eligible, and the effective cutoff value (#​10705 by @​jdx).
  • bootstrap: brew formulae prune is now prefix-inventory based and can remove any linked formula outside the resolved [bootstrap.packages] closure (#​10618 by @​jdx).
  • brew: support cask font artifacts and additional non-install artifact types (completions/manpages) (#​10671 by @​roele).
  • platform: Android asset detection for tools like Termux packages (#​10653 by @​bltavares).
Fixed
  • install: respect the lockfile-recorded backend during --locked installs (#​10599 by @​risu729).
  • install: installer prints a clearer message and suggests cargo install --locked mise on unsupported architectures (#​10627 by @​risu729).
  • install-into: refuse to overwrite a non-empty target directory without --yes (#​10630 by @​JamBalaya56562).
  • aqua: resolve bin paths with v-prefixed version overrides (e.g. sharkdp/fd@10.3.0) (#​10696 by @​jdx).
  • aqua: download private GitHub release assets via the API asset endpoint when the browser URL 404s (#​10622 by @​yacchi).
  • brew-cask: handle raw executable binaries, resolve $APPDIR paths, and use ditto for app bundle copying to avoid macOS "damaged app" errors (#​10626 by @​arthurh4).
  • config: preserve set values in mise config set for comma-separated set-typed settings (#​10647 by @​KrishRVH).
  • config: render task_config.includes templates with resolved vars (#​10700 by @​jdx).
  • config: support required validation and redact = true on [vars]; render tool option templates recursively (#​10697 by @​jdx).
  • dotnet: validate SDK installs with dotnet --list-sdks so global.json roll-forward no longer causes false failures (#​10691 by @​jdx).
  • generate: mise generate tool-stub --lock respects configured lockfile_platforms (#​10709 by @​JamBalaya56562).
  • github: handle missing/empty url_api in older lockfile entries, falling back to the cached browser URL (#​10703 by @​jdx).
  • hooks: set MISE_INSTALLED_TOOLS=[] on no-op installs so postinstall always receives a valid JSON array (#​10615 by @​JamBalaya56562).
  • http: don't let netrc credentials clobber explicit forge tokens on un-redirected URLs, fixing private GitHub release asset downloads (#​10713 by @​yacchi).
  • lockfile: merge platform data when a tool's options newly diverge from an empty on-disk entry (e.g. java shorthand_vendor), preventing checksum/URL loss (#​10710 by @​JamBalaya56562).
  • npm: map allow_builds to npm 11.16+ --allow-scripts / --dangerously-allow-all-scripts instead of forcing --ignore-scripts (#​10690 by @​jdx).
  • oci: canonicalize install paths when rebasing PATH, fixing mise oci on systems with symlinked /home (Bluefin/Silverblue) (#​10624 by @​salim-b).
  • oci: account for darwin mode stripping in layer test expectations (#​10681 by @​laozc).
  • ruby: stop forcing no-yjit Ruby builds on older glibc (#​10620 by @​jdx).
  • sigstore: retry GitHub attestation verification with the TUF trust root after embedded-root failures; workflow mismatches remain non-retryable (#​10695 by @​jdx).
  • task: render monorepo subproject task templates with the subproject's own [env]; broken subprojects no longer fail discovery repo-wide (#​10706 by @​jdx).
  • task: correct env used for the task.show_full_cmd setting (#​10714 by @​muzimuzhi).
  • vfox: Lua os.getenv now reads from mise's env table like cmd.exec/os.execute (#​10719 by @​jdx).
  • watch: forward --ignore, --ignore-file, and --print-events to watchexec (#​10629 by @​JamBalaya56562).
  • windows: allow GHCUp to be installed on Windows via aqua (#​10670 by @​cprecioso).
  • copr: drop retired Fedora 42 chroots from the default build list (#​10698 by @​jdx).
Security
  • Ignore transitive quick-xml advisories RUSTSEC-2026-0194/-0195 pending upstream fixes (#​10717 by @​jdx).
💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.14: : Bootstrap, end-to-end

Compare Source

Added

  • bootstrap: mise bootstrap --only <part> as the inverse of --skip, accepting repeated/comma-separated phase names and mutually exclusive with --skip (#​10607 by @​jdx).
  • bootstrap: mise bootstrap packages import / prune for Homebrew formulae, snapshotting requested installed formulae into [bootstrap.packages] and ledger-pruning only adopted formulae no longer needed by merged config (#​10606 by @​jdx).
  • bootstrap: mise bootstrap status (alias ls) aggregates packages, dotfiles, macOS defaults, launchd, systemd, login shell, repos, shell activation, and [tools] into one report with --json and --missing (non-zero exit when anything is out of sync) (#​10608, #​10612 by @​jdx).
  • bootstrap: Consolidated bootstrap: follow-up summary listing deferred user actions (macOS defaults relaunches, login shell re-login, unavailable managers, OS-skipped phases) at the end of mise bootstrap; dry runs show follow-up if applied (#​10609 by @​jdx).
  • bootstrap: Declarative [bootstrap.mise_shell_activate] config plus mise bootstrap shell apply/status to install marker-delimited mise activate/shims snippets in bash, zsh, and fish rc files (#​10610 by @​jdx).
  • bootstrap: Path-keyed [bootstrap.repos] with mise bootstrap repos apply/status to clone/update git checkouts; runs after packages, before dotfiles, with pre-repos/post-repos hooks and safety checks for dirty trees and origin mismatches (#​10611 by @​jdx).
  • bootstrap: Restructured mise bootstrap subcommands so visible CLI mirrors config sections (packages apply, dotfiles, mise-shell-activate, macos defaults, macos launchd-agents, linux systemd-units, repos); legacy paths kept as hidden aliases (#​10613 by @​jdx).
  • brew: Built-in brew-cask installer now supports binary cask artifacts (e.g. 1Password CLI op), staging in the Caskroom and symlinking under the Homebrew prefix (#​10604 by @​jdx).
  • backend: Asset platform detection now recognizes riscv64 (including riscv64gc) and loongarch64, so tools like aqua:astral-sh/uv install correctly on those hosts (#​10506 by @​elerch).

Fixed

  • which: mise which now auto-enables prefer_offline, so binary lookups no longer make remote HTTP calls when an installed version satisfies the request, even with minimum_release_age configured (#​10595 by @​JamBalaya56562).
  • sigstore: Sigstore TUF root fetches honor settings.url_replacements, fixing aqua cosign-verified installs (e.g. cosign@3.1.1) behind a mirror; the embedded production root is still pinned so a mirror cannot forge trust (#​10596 by @​JamBalaya56562).
  • config: Treat symlinked global config paths as global so ~/.config/mise/conf.d/*.toml on Fedora Atomic / ostree (/home -> /var/home) is no longer flagged as non-global and stripped (#​10597 by @​JamBalaya56562).
  • config: mise set and other TOML writes now target the nearest config directory before picking the lowest-precedence file in it, so nested projects no longer accidentally update a parent mise.toml (#​10603 by @​jdx).
  • config: Return a clean read-only error instead of panicking when something tries to write to an idiomatic version file (e.g. mise use --path package.json) (#​10602 by @​jdx).
  • github: github::get_headers returns an error rather than panicking on a relative URL, fixing an unwrap crash seen installing aqua:jdx/aube@v1.24.0 (#​10591 by @​risu729).
  • hook-env: Suppress repeated untrusted-config warnings while staying in the same directory; leaving and re-entering, or editing .mise.toml, re-enables the warning, and explicit commands still report the full error (#​10589 by @​jdx).
  • settings: mise settings set for a brand-new dotted key no longer emits an empty [settings] header before the nested [settings.foo] table (#​10605 by @​jdx).
  • completions: Deduplicate plugin names in shell completion so mise ls --installed no longer surfaces duplicate plugin@ entries (#​10351 by @​zeitlinger).

Documentation

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.13: : Lock resolution discipline and aqua attestation fixes

Compare Source

Added

  • bootstrap: Support brew cask pkg artifacts, installing via sudo installer and tracking pkgutil receipt IDs for status checks (#​10587 by @​jdx).
  • registry: Added lore (#​10558 by @​ggoggam) and published-checksum resolution for dart, neo4j, nomad-pack, sentinel, tfc-agent, oc, openshift-install, claude, flutter, and julia (#​10552 by @​itochan).

Fixed

  • lock: mise lock now errors out when an active tool request cannot be resolved instead of silently skipping it and updating the lockfile (#​10586 by @​jdx).
  • aqua: Verified checksum files can now upgrade an existing recorded checksum when the algorithm differs (e.g. GitHub release metadata records sha256 but SHA512SUMS provides sha512); same-algorithm mismatches still fail hard (#​10569 by @​jdx).
  • aqua: GitHub Artifact Attestations badge is no longer inferred from .sigstore release asset names; it is shown only when the aqua registry config actually enables attestation verification (#​10588 by @​jdx).
  • aqua: list_bin_paths no longer caches transient filesystem existence, fixing missing uv/uvx shims after concurrent mise upgrade runs that an extra mise reshim could not repair (#​10559 by @​devnulled, fixes #​6468).
  • task: mise run and mise hook-env now build their initial toolset with offline resolution, so task startup no longer triggers remote GitHub lookups (or github.credential_command) for latest/rolling/semver-range tools (#​10571 by @​jdx).
  • sigstore: Retry transient GitHub attestation API failures (5xx, 429, timeouts) with exponential backoff and Retry-After support, instead of failing the install on a single 504 (#​10482 by @​afreyermuth98).
  • swift: Opt core:swift out of the --locked URL requirement, since the download URL depends on the local distro and cannot be locked cross-platform (#​10575 by @​AllDmeat).
  • gem: Opt gem: backend out of the --locked URL requirement so mise install --locked no longer fails on gem: tools in CI (#​10578 by @​itochan).
  • node: Suppress duplicate npm update notices during core Node installs (#​10557 by @​risu729).
  • node: Record per-platform install outcomes in the lockfile, including install = "source" and the source tarball URL/checksum for platforms without precompiled binaries, instead of writing bogus platform binary URLs (#​10547 by @​risu729).
  • file (Windows): Use directory symlinks instead of junctions for UNC plugin targets (e.g. \\wsl.localhost\...), so linked plugins show up in mise plugins ls and can be removed (#​10566 by @​rozsazoltan).
  • oci: Write symlinks with targets longer than tar's 100-byte linkname field via the GNU @LongLink extension, fixing mise oci build for deep npm/aube install trees (#​10519 by @​JamBalaya56562).
  • deps (Dart): Look for package_config.json at the pub workspace root, using .dart_tool/pub/workspace_ref.json, so Dart monorepos resolve dependencies correctly (#​10521 by @​tjarvstrand).

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.12: : Bootstrap skip, cross-platform lock checksums, DNF5 fix

Compare Source

Added

Fixed

  • upgrade: Correctly remove the previously installed version during mise up when minimum_release_age is in effect (#​10466 by @​roele).
  • install: Rebuild runtime symlinks and shims for tools that succeeded in a partially failed mise install (#​10470 by @​risu729).
  • bootstrap: Detect systemd user manager via $XDG_RUNTIME_DIR/systemd/private, not only a session D-Bus, so headless systems are recognized (#​10550 by @​jdx).
  • vfox: Resolve tools = true env path templates like {{ tools.python.path }} against the fully-resolved dependency toolset; values now reach vfox install hooks and tool-level postinstall (#​10481 by @​JamBalaya56562).
  • task: Higher-precedence TOML wins when the same task is defined in multiple config files in one project (#​10471 by @​risu729).
  • task: Skip mise config TOMLs (e.g. mise.toml, .mise/config.toml) when walking directory task includes like includes = ["."] (#​10500 by @​jdx).
  • task: Return a clean error (and avoid panicking the scheduler) when the resolved inline/file shell is empty; spawned task panics now exit non-zero (#​10517 by @​jdx).
  • task: Honor task.show_full_cmd / MISE_TASK_SHOW_CMD_NO_TRUNC in the [task] $ ... header (#​10518 by @​JamBalaya56562).
  • env: Treat $$ as a literal $ during env_shell_expand (#​10511 by @​jdx).
  • npm: Warn when system pnpm/bun may not support minimum_release_age flags (#​10491 by @​risu729).
  • pipx: Run pipx upgrade-shared before fallback installs that forward minimum_release_age to pip (#​10472 by @​risu729).
  • pipx: Warn when uv tool install is below 0.2.22 for --exclude-newer (#​10510 by @​risu729).
  • pipx: Force PIPX_DEFAULT_BACKEND=pip on mise pipx subprocesses so pip flags are not forwarded to pipx's uv backend (#​10513 by @​risu729).
  • backend: Centralize dependency executable resolution and apply windows_executable_extensions consistently across uv, aube, cargo-binstall, and sops (#​10514 by @​risu729).
  • system: Drop the bare -- from dnf install/upgrade argv, which DNF5 (Fedora 41+, RHEL/CentOS Stream 9+) rejects (#​10538 by @​spencergilbert).

Documentation

  • dotfiles: Self-managing config examples source from the real clone path so first-run bootstrap works before the ~/.dotfiles symlink exists (#​10494 by @​jdx).
  • Recommend keeping mise current (#​10505) and clean up emoji checkboxes in env docs (#​10504).

Changed

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.11: : apk bootstrap, cleaner Windows shims, and aqua polish

Compare Source

A focused release that adds Alpine apk as a bootstrap package manager, stops the default Windows exe shims from leaking into WSL, and fixes a handful of aqua, HTTP cache, Rust, and Deno corners.

Added
  • bootstrap: Alpine Linux apk joins apt, dnf, pacman, and brew as a supported [bootstrap.packages] manager. Specify packages as apk:name (with optional @version), or pass --manager apk explicitly; status, install, and upgrade all wire through the same paths as the other Linux managers (#​10476 by @​jdx).

    [bootstrap.packages]
    "apk:curl" = "*"
    "apk:git" = "@&#8203;2.45.2-r0"
  • registry: Added pinniped to the registry (#​10456 by @​tony-sol).

Fixed
  • task: mise run //projects/backend and mise run //... no longer behave like //projects/backend:* — the monorepo pattern parser now rejects path-only targets with a clear error pointing to //path:<task> or //path:* (#​10479 by @​jdx).
  • shim (Windows): Default exe windows_shim_mode no longer writes a second, extension-less bash shim next to <tool>.exe. Git Bash / Cygwin / MSYS2 already resolve a bare gh to gh.exe, and dropping the extras stops them from leaking into WSL via /mnt/c/... PATH interop (the source of the mise: not found / infinite-recursion loops). file mode still emits the bash shim where it is required. Old extras are cleaned up on the next reshim (#​10475 by @​JamBalaya56562).
  • aqua: format_overrides are now parsed from the aqua registry and applied to the compiled package model. They run after version overrides and before normal platform overrides — matching aqua's own ordering — so per-OS archive formats finally resolve correctly. Aqua registry caches will rebuild on first use due to a serialized-layout bump (#​10461 by @​risu729).
  • aqua: Minisign asset templates such as {{.Asset}}.minisig now render against the selected package asset, fixing signature verification for packages like jedisct1/minisign 0.12 (#​10462 by @​risu729).
  • deno: Deno's Windows .sha256sum files use PowerShell Get-FileHash multi-line output. mise now parses that format alongside the standard whitespace-delimited one, validates the algorithm/length, and stores hashes lowercased as "<algo>:<hash>" (#​10464 by @​risu729).
  • http: Auto-detected strip_components is now resolved before HTTP archive cache lookup and folded into the http-tarballs cache key. Stripped and unstripped extractions of the same URL no longer share a cache entry, fixing tool-stub installs that re-used a previous bin_path-based extract (#​10468 by @​risu729).
  • install: When resolving lockfiles, absolute symlink targets that live under mise-managed data/cache/download/install/shared dirs are no longer misclassified as mise link versions. External symlink targets remain classified as linked. This fixes mise install --locked idempotency for HTTP-backed tools (#​10463 by @​risu729).
  • rust: rust-toolchain.toml profile, components, and targets are now stored on the generated ToolRequest, so install and lockfile-option resolution both read the same request.options() instead of re-parsing the file. As a side effect, lockfile keys are canonicalized: TOML arrays now match comma-separated strings, components/targets are sorted and deduplicated, and an empty profile no longer emits a spurious key (#​10178 by @​risu729).
  • exec: COLORTERM is now passed through to child processes (alongside TERM), preserving 24-bit truecolor signalling in sandboxed environments (#​10451 by @​sschuberth).
  • docs: The Tera task-argument deprecation page now says removal is in 2027.5.0, matching the warning emitted by the CLI (#​10453 by @​reitzig).
  • docs: The minimum_release_age example uses 6mo (not 6m) for "6 months", matching jiff's friendly duration format (#​10193 by @​sisp).
Changed
  • deps: Replaced the unmaintained fuzzy-matcher crate (archived, last published 2020) with nucleo-matcher for registry/task suggestion scoring and picker highlight indices (#​10467 by @​risu729).
  • deps: Removed the os-release and sys-info crates in favor of mise's internal /etc/os-release parser, which is now shared by libc detection, env, Swift, and Erlang Linux fallbacks (#​10465 by @​risu729).
Aqua Registry

New packages: Latias94/merman, bitnami/sealed-secrets, coder/boo. Updated: suzuki-shunsuke/ghtkn.

New Contributors

Full Changelog: jdx/mise@v2026.6.10...v2026.6.11

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.10: : Env defaults, Unix 7z, and stale-PATH fixes

Compare Source

A focused release that adds a default shorthand for env vars, brings .7z archive support to Unix, and cleans up several long-standing PATH and shim edge cases on Linux, macOS, Windows, and WSL.

Added

  • env: New { default = "fallback" } shorthand for [env] (and config/task [vars]). The default applies only when the variable is unset or empty; existing non-empty values from the process env or earlier config are preserved. Mixing default with value, required, or age now fails with a clear message (#​10441 by @​jdx).

    [env]
    EDITOR = { default = "vim" }       # only used if $EDITOR is unset/empty
    PORT   = { default = "3000" }
  • backend: .7z archives now extract on Unix as well as Windows, and strip_components probing works cross-platform. Migrated from the unmaintained sevenz-rust to sevenz-rust2, and tightened extraction to reject directory traversal and absolute paths (#​10434 by @​risu729).

Fixed

  • env: When env_shell_expand is enabled, ${VAR:-default} now follows POSIX semantics: empty strings are treated as missing (fallback applies), ${VAR-default} only substitutes when the variable is unset, and fallback text is recursively expanded (e.g. ${NONEXISTENT:-$OTHER}). Braced parsing is also stricter — unterminated ${… stays literal and } inside $(…) no longer closes the brace (#​10445 by @​jdx, fixes #​10444).
  • env: mise x / run / env now strip mise-managed install directories from the inherited PATH when composing the child environment. Stale entries carried in from a frozen env snapshot (IDE terminals, CI wrappers, AI-agent harnesses) no longer sit ahead of the freshly injected bin dir, so subshells, #!/usr/bin/env shebangs, and package-manager workers all resolve the requested tool version (#​10422 by @​JamBalaya56562, addresses #​10345).
  • vfox: Plugin install hooks that shell out via Lua os.execute now run under the same sanitized mise_env as cmd.exec. Combined with new resolution of tools = true env values during install, this fixes setups like gcloud depending on python where a single mise install previously left CLOUDSDK_PYTHON pointing at a nonexistent path (#​10432 by @​JamBalaya56562, fixes #​10282).
  • shims: Windows extensionless bash shims now detect WSL (WSL_DISTRO_NAME / WSL_INTEROP / WSLInterop), drop their own dir from PATH, and exec the tool directly. This breaks the infinite mise x loop that happened when the Windows shims dir was exposed at /mnt/c/... inside WSL, and gives a clean <tool>: not found when no Linux tool is installed. file-mode shims are now also flagged version-stale so a normal reshim regenerates them on upgrade (#​10421 by @​JamBalaya56562, addresses #​10299).
  • file: make_symlink on Unix now creates the link at a unique temp name in the destination dir and atomically rename(2)s it into place. This eliminates the noisy failed to ln -sf … File exists (os error 17) warnings that surfaced when several mise processes (shell hook-env, direnv, editor integrations) raced on the same tracked-config link, e.g. when spawning a new git worktree (#​10414 by @​JamBalaya56562, fixes #​10292).
  • task: On Windows, script-task lookup now prefers Windows-native variants (e.g. .ps1) over their extensionless siblings, and extensionless takeover only applies when the match is unambiguous and stays within the same config family (#​10443 by @​jdx).

Changed

  • deps: Replaced the unmaintained number_prefix (RUSTSEC-2025-0119) and stale humansize crates with bytesize. Size strings in generated tool-stub comments and mise cache prune output now use native bytesize IEC formatting — e.g. 821.69 KiB becomes 821.7 KiB and 2.15 MiB becomes 2.2 MiB (#​10438 by @​risu729).

Full Changelog: jdx/mise@v2026.6.9...v2026.6.10

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.9: : Release plumbing cleanup

Compare Source

A maintenance-only release. There are no user-facing changes — just a revert of the release workflow plumbing introduced last cycle, plus routine aqua registry updates.

Changed

  • ci: Reverted the idempotent GitHub release asset helper added in the previous cycle. The release workflow now goes back to creating the draft release and uploading every artifact in a single gh release create --draft call, which avoids the tag-lookup failure that broke the v2026.6.8 publish run (GitHub returns an untagged-* URL for freshly created drafts) (#​10433 by @​jdx).

Full Changelog: jdx/mise@v2026.6.8...v2026.6.9

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.8: : Rolling zig@master and fresher Ruby builds

Compare Source

A small fix release: zig@master now behaves as a true rolling channel, and jdx/ruby precompiled installs always pick up the latest numbered build revision.

Fixed

  • ruby: Precompiled installs from the default jdx/ruby source now require a numeric build-revision tag (e.g. 3.3.11-1, 3.3.11-2) and ignore the floating base release. Lockfiles already pin to a revision and the base tag is treated as revision 0, so unlocked installs land on the newest rebuilt binary instead of an older one. Custom ruby.precompiled_url GitHub sources keep the previous base-tag fallback (#​10428 by @​jdx).

  • zig: zig@master is now treated as a rolling release channel. mise resolves it to the concrete nightly it currently points at (e.g. 0.17.0-dev.836+e357134f0) via ziglang.org/download/index.json, installs into a versioned directory rather than a frozen installs/zig/master, and reuses the latest installed nightly for the channel — never an unrelated stable release — when running offline or from hook-env. As a result, mise upgrade zig and mise outdated can finally track new nightlies (#​10423 by @​JamBalaya56562, addresses #​10251).

    mise use zig@master
    mise upgrade zig   # moves to the current nightly

Documentation

New Contributors

Full Changelog: jdx/mise@v2026.6.7...v2026.6.8

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.7: : pkgx backend, more bootstrap surface, and forge install fixes

Compare Source

Added

  • pkgx: backend: install pkgx pantry packages natively (no pkgx CLI required), with checksum-verified bottles, dependency resolution, and lockfile support via pkgx_deps and a shared [pkgx-packages] section (#​10408 by @​jdx).
  • [bootstrap.macos.launchd.agents] for declarative macOS user LaunchAgents, plus mise bootstrap launchd apply / status (#​10396 by @​jdx).
  • [bootstrap.linux.systemd.units] for declarative systemd user services, plus mise bootstrap systemd apply / status (#​10399 by @​jdx).
  • [bootstrap.hooks] to run shell commands at named bootstrap phases (pre-packages, post-dotfiles, post-tools, final, etc.), honoring --dry-run (#​10395 by @​jdx).
  • Friendly macOS defaults sections: [bootstrap.macos.dock], [bootstrap.macos.finder], [bootstrap.macos.keyboard], [bootstrap.macos.trackpad] with curated keys like show_all_files and tap_to_click (#​10398 by @​jdx).
  • mas: package manager for [bootstrap.packages] to install Mac App Store apps by ADAM ID (#​10397 by @​jdx).
  • mise bootstrap --force-dotfiles to replace conflicting whole-file dotfile targets, plus no-force replacement of regular files whose contents match the symlink source (#​10410 by @​jdx).
  • tbz recognized as an alias for tar.bz2 extraction (#​10403 by @​risu729).
  • Registry: SQLcl (aqua:oracle.com/sqlcl) (#​10417 by @​jasonlyle88).

Fixed

Documentation

💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

v2026.6.6: : Declarative machine bootstrap

Compare Source

Added
  • mise bootstrap command for end-to-end machine setup — system packages, dotfiles, macOS defaults, login shell, tools, and an optional bootstrap task — with --yes, --dry-run, and --update (#​10365, #​10376 by @​jdx).
  • Declarative dotfiles via [dotfiles] plus mise dotfiles add / apply / edit / status, supporting symlink, symlink-each, copy, and template modes, glob wildcards in source paths, and block/line edits to files mise doesn't own (#​10365, #​10368, #​10374, #​10376 by @​jdx).
  • [bootstrap.macos.defaults] for declaratively managing macOS user defaults, applied through mise bootstrap macos-defaults apply with drift reporting in status and mise doctor (#​10363 by @​jdx).
  • [bootstrap.user].login_shell to declare and converge the current user's login shell (chsh -s, updating /etc/shells when needed) (#​10377 by @​jdx).
  • [bootstrap.brew.taps] and mise bootstrap packages brew tap / untap for third-party Homebrew taps, with tap context preserved through dependency resolution and source builds (#​10375, #​10383 by @​jdx).
  • brew-cask: package manager that installs supported app-bundle casks directly from cask API metadata without requiring a local Homebrew install (#​10383 by @​jdx).
  • Native Homebrew source builds: when no usable bottle exists, mise provisions Ruby, evaluates the formula with a built-in Formula DSL shim, and builds from source into the canonical prefix (#​10364 by @​jdx).
  • mise oci build now bakes [dotfiles] and apt: [bootstrap.packages] into images as dedicated annotated OCI layers (#​10373 by @​jdx).
  • Safe mise.toml files (no templates, only min_version and plain [tools] / [tasks] strings) auto-load without a trust prompt; everything else still requires trust (#​10360 by @​jdx).
Fixed
  • CLI no longer panics on arguments containing invalid UTF-8; malformed bytes become U+FFFD and surface as a normal error (#​10386 by @​JamBalaya56562, fixes #​10056).
  • GitHub 403 errors now include the response body, rate-limit headers, and whether the request was authenticated, replacing the bare 403 Forbidden message (#​10382 by @​jdx).
  • Brew shim (shim.rb) is now included in the published crate, fixing cargo publish for the source-build path (#​10388 by @​jdx).
Changed
  • MCP server, sandboxing, hooks/watch_files, monorepo tasks, task templates, native GitHub OAuth, custom vfox backends, Swift, and the dotnet/s3/spm backends are no longer experimental; the monorepo root key is now monorepo_root (with experimental_monorepo_root kept as a hidden alias) (#​10371 by @​jdx).
  • Version lists for mise-versions are now fetched from /data/{tool}.toml so Cloudflare can serve them as static assets (#​10361 by @​jdx).
  • Split archive extraction and single-file decompression into dedicated helpers (extract_archive, decompress_file), with clearer errors for unsupported formats (#​10274 by @​risu729).
Documentation
New Contributors
💚 Sponsor mise

mise is built by @​jdx under en.dev — an independent studio making develope

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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

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


  • 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 added the dependencies label Jan 7, 2026
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 2 times, most recently from c1e1b5e to 64fa1d6 Compare January 14, 2026 01:02
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 4 times, most recently from fe0733f to 672422c Compare January 21, 2026 21:47
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 7 times, most recently from 7f3d79f to b49c7c7 Compare February 1, 2026 15:31
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 8 times, most recently from 098337e to 82a7b5a Compare February 9, 2026 12:33
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 7 times, most recently from bd03337 to 2118436 Compare February 17, 2026 11:28
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch from 2118436 to 98adc4d Compare February 18, 2026 13:04
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 6 times, most recently from eb5a672 to f3744e5 Compare March 13, 2026 21:38
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 4 times, most recently from 1cb991e to 5b89e4c Compare March 23, 2026 16:32
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 4 times, most recently from cbb9c56 to 92a91b3 Compare April 6, 2026 13:59
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 6 times, most recently from ca59d0d to f133d69 Compare April 13, 2026 13:54
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 6 times, most recently from dd24c2d to d47be0c Compare April 23, 2026 02:09
@renovate renovate Bot force-pushed the renovate/jdx-mise-2026.x branch 3 times, most recently from 9f295fe to 047bc08 Compare April 25, 2026 21:26
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.

0 participants