Update GitHub actions - #340
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/github-actions
branch
6 times, most recently
from
September 9, 2026 15:26
19ae1e3 to
85208bf
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
9 times, most recently
from
September 19, 2026 03:42
e4145c7 to
fa448c4
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
September 19, 2026 19:32
fa448c4 to
21cf58b
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR contains the following updates:
v1.7.2→v1.7.33.6.1→3.7.0v4.1.1→v4.2.2v7.0.0→v7.0.1v6.2.0→v6.3.02026.6.14→2026.9.8v2026.9.11(+2)2026.5.9→2026.9.8v2026.9.11(+2)2026.3.7→2026.9.8v2026.9.11(+2)v4.2.0→v4.3.0v1.2.2→v1.3.0Release Notes
SonarSource/gh-action_cache (SonarSource/gh-action_cache)
v1.7.3Compare Source
What's Changed
Bug Fixes
PREQ-8655: Lengthen Cognito credential-setup retries by @tomverin in #98
Org-wide CI bursts (for example
sonar-enterpriseFULLQA) could exhaust the previous 3-attempt / 5s Cognito window withGetCredentialsForIdentityRate exceeded. Defaults are now 5 attempts / 8s base (exponential backoff with 50–100% jitter, about 60–120s). Each Cognito attempt fetches a fresh GitHub OIDC token so the longer window cannot outlive the 5-minute token. Permanent Cognito errors (for exampleValidationException) fail fast.Workflows already on
SonarSource/gh-action_cache@v1pick this up automatically with thisv1branch update.Improvements
BUILD-12217: bump vitest and SCA dependency overrides by @hedinasr in #90
Fixes CVE-2026-47429 via
vitest^3.2.7and tightens npm overrides (undici≥6.28.0,vite≥7.3.6,postcss≥8.5.23,nanoid≥3.3.17).CI (this repository)
gh-action_pre-commit@v2by @matemoln in #96New Contributors
Full Changelog: SonarSource/gh-action_cache@v1.7.2...v1.7.3
SonarSource/vault-action-wrapper (SonarSource/vault-action-wrapper)
v3.7.0Compare Source
What's new
Full Changelog: SonarSource/vault-action-wrapper@3.6.1...3.7.0
actions/attest-build-provenance (actions/attest-build-provenance)
v4.2.2Compare Source
What's Changed
Full Changelog: actions/attest-build-provenance@v4.1.1...v4.2.2
actions/checkout (actions/checkout)
v7.0.1Compare Source
gradle/actions (gradle/actions)
v6.3.0Compare Source
Highlights
Enhanced Caching: Windows fixes and a cache-protocol bump
This release updates
gradle-actions-cachingto v1.0.0 (up from v0.7.0), which fixes two significant caching defects, both most visible on Windows:Cache entries failed to store at all on Windows.. Every entry failed
with
Path Validation Error: Path(s) specified in the action for caching do(es) not exist, even though the Gradle User Home was fully intact. Nothing was stored, soevery downstream job ran against an empty Gradle User Home. The cause was a nested,
unpatched copy of
@actions/globcombined with a silently swallowedrequire()inthe bundle, which left Windows path separators unnormalized.
Cache cleanup deleted instrumented jars that were in use. A bug in key
hashing for paths shorter than 64 characters made cleanup judge freshly created
caches/jars-9entries as unused and remove them, so theinstrumented-jarsentrywas never saved and every job re-instrumented its classpaths.
Also included: cache entry names are now consistent between the save and restore
reports — restore previously fell back to showing the raw glob pattern (e.g.
/home/runner/.gradle/caches/modules-*/files-*/*/*/*/*/) instead ofdependencies.Basic caching warns instead of failing silently
The basic (open-source) caching provider now emits a warning and reports
(Entry not saved: save failed)in the Job Summary when a cache save fails, ratherthan reporting success (#1028).
Dependency submission works with Isolated Projects
dependency-submissionnow disables Isolated Projects via a promoted property, sodependency graph generation works on builds that enable it (#1025). Thanks to @reinsch82 for the contribution.
Updated defaults
wrapper-validationWhat's Changed
New Contributors
Full Changelog: gradle/actions@v6.2.0...v6.3.0
jdx/mise (jdx/mise)
v2026.9.8: : Top-levelmise dotcommand, faster brew bootstrap installs, and npm safety-check fixesCompare Source
Dotfile management moves to the top level as
mise dot, Homebrew bootstrap installs run their download, extraction, and linking stages concurrently, and several install paths are corrected: embedded aube reputation gates now report the real reason and honor--yes, PyPI tools fall back to version-only installs when a dependency graph cannot be built, lazy tools no longer triggermissing:warnings, and lockfiles no longer resurrect disabled backends.Added
dotfiles: The full dotfiles command tree is now available as
mise dotfiles, withmise dotas a short alias.mise bootstrap dotfilesremains supported and all three spellings share the same behavior, including bootstrap hooks aroundapply. Generated history-watch services now invokemise dot watch. (#13158 by @jdx)dotfiles: Enabling encryption on a file that was previously saved in plaintext left older commits that blocked sync.
mise dot sync --allow-plaintext-historylets that history reach the origin for one run, and the global-only settingsettings.history.allow_plaintext_history = true(defaultfalse, envMISE_HISTORY_ALLOW_PLAINTEXT_HISTORY) does the same for sync, publish, the history watcher, and incoming history on pull. New saves still follow the file's encryption policy; the history guide also documents how to remove the old commits instead. (#13175 by @jdx)registry: Added
poppler(conda:poppler), providingpdftotext,pdfinfo,pdftoppm,pdftocairo,pdfunite, and the other Poppler PDF utilities. (#13133 by @i-api)Fixed
user aborted mise adderror when stdin is closed or no terminal is attached. Non-interactive installs now report the measured signal (for example 569 weekly downloads against the 1000 threshold) and suggest the mise-native fix,allow_low_downloads = trueon the tool; an explicit "no" reportsuser declined to add <package>. An explicit CLI--yesnow reaches the aube prompt and approves it, including auto-installs throughuse,exec,run,shell, andupgrade; CI mode and a configuredyes = truesetting alone do not approve reputation gates. (#13123 by @jdx)mise installofpypi:/pipx:tools no longer fails when a uv dependency graph cannot represent the package or its configuration, such as a source-only dependency or free-formuvx_args/pipx_args. mise warns and falls back to the version-only install path, reusing an existing version-only installation on later runs.mise lockandmise install --lockedremain strict and still reject unsupported arguments or dependencies without usable wheels. (#13170 by @jdx)lazy = trueare no longer reported asmissing: <tool>when entering a project or running a baremise install, regardless ofstatus.missing_tools; ordinary missing tools are still reported as before. (#13169 by @jdx)disable_backends. When a parentmise.lockpins a shorthand such asyarntoasdf:yarnand a child project disables asdf,mise tool yarn --backendand a fresh childmise locknow select the first enabled recorded backend or fall back to the enabled registry backend (aqua:yarnpkg/berry) instead of the disabled pin. The parent lockfile is left unchanged and explicitly installing a disabled backend still fails. (#13178 by @jdx)Changed
mise bootstrap packages applyinstalls Homebrew packages substantially faster. Formula metadata for each dependency frontier is fetched concurrently, bottles are extracted, relocated, signed, and receipted concurrently, and each job now downloads and prepares its own bottle so prepared bottles are committed as soon as dependency order allows. All stages respect the existingjobslimit with no new settings; Cellar commits and prefix linking stay dependency-ordered,opt/<name>is linked last so an interrupted install cannot look complete, and a failure cancels queued work while cleaning up in-flight staging. On Apple silicon, a fresh install ofbrew:jq brew:tree brew:wget brew:just brew:shellcheckdropped from roughly 6.6s to 4.0s, and dependency resolution forbrew:ffmpegfrom 288ms to 112ms. (#13151, #13152, #13155 by @jdx)Documentation
mise.lockguides now open with quick-start and everyday workflows (mise use node@24 npm:prettier,mise use python@3.14 uv pypi:black,mise lock,mise install --locked) and group dependency-graph locking, sidecar management, and strict-mode details afterward. The lockfile guide clarifies that URL-lock exemptions do not exempt dependency graphs from validation. (#13149 by @jdx)Full Changelog: jdx/mise@v2026.9.7...v2026.9.8
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.
v2026.9.7: : Lockfile revision 2 with npm and Python dependency graphs, dotfile conflict inspectionCompare Source
This release introduces
mise.lockrevision 2, which records complete transitive dependency graphs for npm tools (via embedded aube) and Python tools (via uv) in native sidecar files, and addsmise bootstrap dotfiles conflictsfor inspecting dotfile sync conflicts before resolving them. It also lets dotfile templates consume bootstrap secrets, stopsminimum_release_agefrom rejecting versions already committed to a lockfile, and closes a security gap inhistory.describe_command.Added
lock: Lockfile revision 2 records the full dependency graph of npm tools installed by embedded aube and of
pypi:tools installed by uv, then replays it with a strict frozen install so two projects on the same top-level version can still receive their own reviewed transitive graph. Graphs live in native sidecar files (uv.lock/aube-lock.yamlplus a manifest) under.mise/locks/<backend-tool>/<version>/, referenced frommise.lockby relative path and SHA-256 digest, so the lockfile itself stays small. Commit the sidecar directory withmise.lock. New lockfiles use revision 2; existing revision 0 and 1 files keep their format until you runmise lock --upgrade.mise lock --bump <tool>refreshes a tool's transitive graph even when its top-level version is unchanged, ordinarymise installvalidates and accepts hand-edited sidecars, andmise install --lockedrejects digest mismatches until you runmise lock. Python graph locking requires uv 0.12.10 or newer and published wheels for the target platform; Git sources, standalone pipx installs, and free-formuvx_args/pipx_argsstay version-only. (#13131, #13146 by @jdx)pypi:
pypi:is now the preferred name for the Python CLI backend;pipx:remains fully supported as an alias with no warnings, and settings accept bothpypi.*andpipx.*names. The two spellings are distinct tool identities (pypi-blackvspipx-blackinstall directories and lock entries), so switching spelling creates a new installation. (#13146 by @jdx)bootstrap:
mise bootstrap dotfiles conflicts [PATH...]shows a read-only comparison of the saved local and fetched remote versions of a conflicted dotfile so you can decide between--take-remoteand--keep-localwith full context. The default output is a unified diff including file-mode changes;--difftoolopens the configured Gitdiff.tool(falling back tomerge.tool) and--tool <name>picks one explicitly. Encrypted contents are decrypted only into private temporary files, and inspection never modifies either side or marks the conflict resolved. Bootstrap secrets are also now resolved from the same composed config maps as dotfile discovery, so root-scoped dotfile templates can use secrets declared by their bootstrap root. (#13144 by @jdx)dotfiles: Dotfile templates (
mode = "template") can reference[bootstrap.secrets]values with{{ secret(name="...") }}, matching managed bootstrap file templates. Dotfiles commands that render templates (add,apply,diff,edit,status,unapply) accept--prompt-secrets; without an available value, rendering fails closed. A fullmise bootstraprun preflights dotfile templates before making changes,mise bootstrap statusreports secrets used only by dotfiles, and textual diffs redact resolved secret values. (#13140 by @jdx)Fixed
mise.lockno longer fails when the locked release is younger thanminimum_release_age. The cutoff still applies when resolving unlocked fuzzy requests and when generating or bumping a lockfile, andnpm:/pypi:still forward it to unpinned transitive dependencies, but a reviewed lock entry now reproduces immediately in CI instead of waiting for the release to cool. (#13128 by @jdx).python-version(or other idiomatic version file) containingsystemselects the system interpreter without printing the mise-specific@systemdeprecation warning, matching the existing.tool-versionsexception. Explicitpython@systemrequests from mise configuration or command arguments still warn. (#13132 by @jdx)mcshorthand usesaqua:minio/mcagain now that the upstream Aqua registry entry is restored, withasdf:mise-plugins/mise-mckept as the fallback. (#13124 by @jdx)Security
history.describe_commandis now global-only. Previously an implicitly trusted project could set it and have a later dotfiles history checkpoint execute the project-controlled command with unencrypted tracked-file diffs. The setting is honored only from system/global configuration orMISE_HISTORY_DESCRIBE_COMMAND; project values are ignored with a warning. (#13134 by @jdx)mise oci buildnow renders dotfile templates with a restricted engine:secret()is rejected and theenvcontext,get_env(),exec(), andread_file()are unavailable, so ambient credentials cannot be baked into a publishable image layer. (#13140 by @jdx)Breaking Changes
mise lock --upgrade. Upgrade collaborators and CI to this release before committing a revision 2mise.lock, and commit the.mise/locks/(or.config/mise/locks/) sidecar directory alongside it. Revision 2--lockedinstalls fail if a recorded graph is missing or its digest does not match. If you gitignoremise.local.lock, also ignore its matching sidecar subdirectory (for example.mise/locks/mise.local/).history.describe_commandin project configuration is ignored. Move it to~/.config/mise/config.tomlor setMISE_HISTORY_DESCRIBE_COMMAND.mise oci builddotfile templates can no longer callsecret(),get_env(),exec(), orread_file()or read theenvcontext.Full Changelog: jdx/mise@v2026.9.6...v2026.9.7
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.
v2026.9.6: : Project daemons, mise doctor project, and vfox backend tool discoveryCompare Source
This release adds experimental project daemons backed by pitchfork, a
mise doctor projectcommand for project-declared diagnostic checks, and tool discovery from vfox backend plugins inmise search. It also changes the HTTP backend's default install layout so uninstall and prune reclaim disk space, speeds up warmlockfile_mode = "generate"installs and repeated OCI builds, and fixes a batch of nushell, monorepo, lockfile, brew, and Windows bootstrap issues.Highlights
[daemons]declares background processes and PostgreSQL/Redis presets inmise.toml, managed throughmise daemonsand optionally started when you enter the project.[doctor.checks.<name>]lets projects declare their own environment probes formise doctor project.mise search, shell completion, and interactivemise usenow include tools published by installed vfox backend plugins, andsettings.truncate/--no-truncatedisable terminal-width truncation (automatically when a coding agent is detected).shared_extraction = true), warm generate-mode installs skip needless lockfile rewrites, and OCI builds share a local tool-layer cache.Added
daemons: New experimental
[daemons]section andmise daemonscommand family (start,stop,restart,ls,status,logs,tui) manage project background processes with pitchfork. PostgreSQL and Redis presets install the database as a tool (participating in lockfiles), supply connection environment variables and readiness checks, and keep project data across stop/start. Daemons withauto = ["start", "stop"]start when entering the project from an activated Bash, Zsh, or Fish shell and are released when the last shell session leaves. Requiresexperimental = trueand pitchfork 2.25.0 or later; database presets are Unix-only and PostgreSQL uses loopback trust authentication intended for local development. (#13085 by @jdx)doctor:
mise doctor projectruns checks declared in[doctor.checks.<name>]with the project's environment and installed tools, reporting PASS/FAIL/error/skipped per check in text or--json. Checks supportdescription,hint,timeout(default10s),dir,shell, andosselectors, run concurrently under thejobslimit, and exit nonzero when any check fails. Ordinarymise doctordoes not run them, and hints are never executed. A follow-up aligneddirresolution with task conventions (config root for project configs including~/mise.toml,~/expansion), fixed head-of-line blocking when one probe hangs, and keptnohup mise doctor projectalive on SIGHUP. (#13062, #13089 by @jdx)vfox: Tools provided by installed vfox backend plugins now appear in
mise search, shell completion, and interactivemise use, namespaced as<plugin>:<tool>. Plugins can implementBackendListToolsfor a finite catalog and/orBackendSearchToolsfor query-driven discovery in large ecosystems; a prefixed query likenpm:eslintis routed only to that plugin. Results are cached, slow plugins fall back to stale cache, and existing plugins need no changes.mise registryremains registry-only. (#13111 by @jdx)cli: New
settings.truncate(andMISE_TRUNCATE, defaulttrue) controls terminal-width shortening of table cells and task metadata.mise ls,mise config ls, andmise bootstrap dotfiles statusgain--truncate/--no-truncate, and output is kept complete automatically when a known coding agent is detected. (#13112 by @jdx)bootstrap:
[bootstrap.macos.dock]gainsapps, an ordered list of pinned application paths. Status compares identity and order (ignoring Dock-added metadata), apply adds, removes, and reorders application tiles while preserving other tiles andpersistent-others, and an empty list removes all application tiles. Paths must be absolute or home-relative.appbundles. (#13075 by @azohra)bootstrap:
mise bootstrap packages where brew:<formula>prints an installed formula's stableoptroot (for example/opt/homebrew/opt/unzip), so scripts can put keg-only executables on PATH without hardcoding the Homebrew prefix or Cellar version. Missing installs exit nonzero with empty stdout. (#13083 by @himkt)dotfiles: Destination
variantscan omitsourcewhen every variant sets atarget; the entry key is then resolved as a relative path undersettings.dotfiles.rootinstead of next tomise.toml. Parent traversal is rejected. (#13087 by @jdx)fmt:
mise fmtnow sorts lists whose order has no meaning:redactionslexically, and tasksources/outputs,task_templatessources/outputs,task_config.global_inputs, andinput_groupsby reach (@group:references, then globs, then literal paths). Lists containing!exclusions, entries starting with template syntax, or comments are left untouched, and precedence-sensitive lists such asenv_file,tools.*,includes, anddependsare never sorted. (#13058 by @jrandolf)oci:
mise oci buildgains--no-cacheto bypass the new local tool-layer cache; entries live under each tool's cache directory and are removed bymise cache clear TOOL. (#13056 by @jdx)Changed
http:installations extract directly into their own install directory, somise uninstallandmise prunenow remove their files instead of leaving payloads in$MISE_DATA_DIR/http-tarballs/. Setshared_extraction = trueon a tool to keep the previous deduplicated symlink layout. Existing symlinked installs keep working;mise install --force <tool>migrates one to independent files without disturbing other installs that share the content. Legacyhttp-tarballsentries are not reclaimed automatically. Shared raw and compressed binary caches now also include the executable filename in their key, so differently named tools no longer reuse the wrong filename. (#13059 by @jdx)mise oci push --no-cachenow bypasses both the remote registry cache and the local tool-layer cache. (#13056 by @jdx)postgres,redis, andmongodbnow preferconda:backends, installing prebuilt conda-forge binaries in seconds instead of compiling through vfox; vfox and asdf remain as fallbacks.conda:redis-servercovers Linux and macOS only. (#13061 by @jdx)Performance
mise installruns inlockfile_mode = "generate"skip scheduling work for tools whose artifact metadata is already reusable, and skip rebuilding, serializing, and staging the lockfile entirely when nothing was installed and the on-disk lock already matches (preserving comments in the file). Explicitmise lock, forced provenance verification, upgrades, and new platforms still regenerate. (#13101, #13103 by @jdx)mise oci push --from BASEno longer downloads base layers when the base and target live in the same repository, andoci build,oci run, andoci pushshare a local cache of packaged tool layers keyed on file contents, so repeated builds with overlapping tools skip tar and gzip work. (#13055, #13056 by @jdx)Fixed
mise activate nuno longer throwsenv_variable_not_foundon every prompt orcdwhen a variable to hide is absent from the current scope;hide-envis now wrapped intry, matching the no-op behavior of other shells. (#13071 by @i-api)runentries, including names rendered at runtime, right before they execute;--skip-toolsis honored and install failures are reported as task failures without blocking siblings. (#13086 by @jdx)[monorepo]settings are now merged across same-directory config layers (base plusmise.<env>.tomloverlays): omitted fields are inherited, an overlay'sconfig_rootsreplaces the base list, andmonorepo_root = falsein an overlay disables the root and its descendant trust. (#13084 by @jdx)mise which hk --tool hk@latestnow use the lockfile belonging to the config that effectively defines the tool, instead of merging project and global pins and reporting a false "multiple resolutions" ambiguity or selecting an overridden pin.mise which --toolwarns when a lower-precedence config has a matching pin the effective config lacks. (#13042 by @nettlesh)github-attestationsmetadata on upgrade instead of being rejected as a provenance downgrade. (#13102, #13105 by @jdx)mise upgradenow detects updates between letter-suffixed versions such as tmux3.7bto3.7c;sub-Naliases keep resolving numeric components as before. (#13119 by @jdx)brew:zipandbrew:unzip) are now linked into<prefix>/binon Linux, matching Homebrew. Kegs installed by earlier mise versions stay unlinked until the nextmise bootstrap packages upgradeor a reinstall. (#13108 by @lil-lon)preflight_stepsorpostflight_stepsno longer fail during metadata extraction; declarativerunsteps are captured as structured steps and executed by mise, with support formust_succeed = false. (#13060 by @jdx)mise bootstrap remoteon Windows now findsssh.exeandtar.exeon PATH instead of failing withrequired command 'ssh' not found. (#13117 by @JamBalaya56562)2 (real; expected integer)instead of two identical-looking values markeddiffers. (#13096 by @jdx)mise bootstrap dotfiles trackhonors the globalyessetting for confirmations, and warns when tracking a symlink whose resolved source is not itself tracked, suggesting the command to enroll it. (#13072 by @nettlesh, #13095 by @jdx)manifestdotfile entries, restricting explicit modes tocopyorsymlink-eachand rejecting combinations with inline content or file-edit fields. (#12741 by @risu729)mise asdf installandmise asdf reshimno longer re-enter the full CLI dispatch, avoiding stack overflows on small-stack Linux environments;asdf installnow follows the same implicit config trust asmise install. Bash completions are regenerated for the updated usage-rs word-break handling. (#13114 by @jdx)Registry
mpv(conda:mpv, Linux and macOS) (#13049 by @i-api),agent-browser(aqua:vercel-labs/agent-browser) (#13088 by @3w36zj6), andhimalaya(github:pimalaya/himalaya) (#13091 by @i-api).editorconfig-checkerinstalls again after 4.0.1 renamed its assets and executable; the shorthand now uses the GitHub backend. (#13098 by @jdx)mcinstalls from MinIO's GitHub releases instead of the retired Aqua download URL that returned HTTP 410. (#13113 by @jdx)Documentation
New Contributors
Full Changelog: jdx/mise@v2026.9.5...v2026.9.6
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.
v2026.9.5: : macOS defaults, per-platform dotfiles, and complete lockfilesCompare Source
This release deepens macOS bootstrap support with current-host and nested defaults, lets dotfiles and tasks adapt to the platform and to parsed arguments, and adds an opt-in trial of complete lockfile generation. It also carries a batch of install progress, self-update, brew-cask, and sandbox fixes.
Added
bootstrap: New
[[bootstrap.macos.defaults_entries]]blocks let you set macOS preferences explicitly withdomain,key,value, and an optionalhost(anyby default, orcurrent), covering preferences normally written viadefaults -currentHostwhile keeping the existing[bootstrap.macos.defaults]shorthand. Entries also accept an optionalpathto patch a nested dictionary value without replacing its siblings, preserving property-list types and creating missing parents. (#12983 by @azohra, #12984 by @azohra)bootstrap: More friendly macOS preferences: Finder folder sorting and default cloud save location, Dock autohide delay and timing (integers or floats), and keyboard automatic capitalization and spelling correction, all using snake_case names consistent with the existing sections. (#13032 by @jdx)
bootstrap:
[bootstrap.files]and[bootstrap.directories]entries gainphase = "pre-packages"so repository definitions, apt sources, and signing keys can be applied before package installation instead of only afterward. Existing declarations default to"post-packages". (#13052 by @jdx)bootstrap: Ordinary
[bootstrap.files]templates can now reference resolved[vars]values, alongside the existingconfig_root,target, andsecret()helpers. (#13033 by @nettlesh)dotfiles: A single dotfiles source can deploy to different destinations per operating system, architecture, or mise profile using
variantswith an optionaltarget. This works forcopy,symlink,symlink-each, andtemplatemodes. (#13050 by @jdx)task: Task
sourcesandoutputscan now use{{usage.*}}templates, resolved per invocation from parsed arguments and flags before freshness and artifact-cache checks run, so different argument values track freshness independently. (#13051 by @jdx)brew-cask: Casks with structured
set_permissionspreflight/postflight steps now install correctly (for examplebrew-cask:blender), running an unprivilegedchmodover resolved staged or appdir paths instead of failing with an unsupported step-type error. (#13043 by @azohra)lock: Opt-in trial of complete lockfile generation via
lockfile_mode = "generate"(orMISE_LOCKFILE_MODE=generate). The default remains incrementalmerge. Generate mode rebuilds lockfiles from current requests while treating the previous file as an immutable baseline, reusing unchanged artifacts and publishing through staged atomic writes so failures or concurrent edits do not clobber a good lockfile. This mode records only cryptographically verified provenance per target platform;provenance_verifiedis no longer treated as a trust signal. (#13031 by @jdx)self-update: New
disable_update_warningsetting (MISE_DISABLE_UPDATE_WARNING) suppresses "newer mise available" notices inmise version,mise --version, andmise doctor. Explicit self-update and automatic updates are unaffected. (#13028 by @jdx)Fixed
installed 1 tool in 1.1s: dummy@1.0.0).mise upgradeno longer duplicates its old to new version list. (#13030 by @jdx)mise self-updatenow selects the correctlinux-armv7archive instead of requesting a missinglinux-armone and falling back to an ARM64 binary that failed signature verification. A missing archive now fails asset selection rather than picking the wrong architecture. (#13023 by @jdx)mise self-update. (#13028 by @jdx)mise bootstrap packages upgradeno longer replaces the bundle of a running self-updating app (for example Chrome), which could strand helper processes and blank out tabs. Such apps are skipped while running and left to update themselves. (#13041 by @azohra)brewand a broken documentation anchor; it now gives a short, accurate message. (#12800 by @Marukome0743)mise bootstrap dotfiles origin set <url>now uses the repository's own default branch when--branchis omitted, so repositories onmasterconnect correctly instead of publishing a second root branch. A missing requested branch is now reported clearly rather than mistaken for an empty repository. (#13037 by @Dhaulagiri)dotfiles statusno longer misreportsdeclared-not-running. Existing watchers must be stopped and restarted with the updated binary. (#13038 by @ascarter)file-read-metadataon the ancestors of readable paths, fixingOperation not permittedfailures when a portable Ruby resolves its own executable during third-party tap evaluation. Symlinked data directories and allow-listed paths are also handled. (#13039 by @Marukome0743)Registry
clipboard(github:Slackadays/Clipboard) by @i-api in #13044New Contributors
Full Changelog: jdx/mise@v2026.9.4...v2026.9.5
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.
v2026.9.4: : Nix Bootstrap, Environment Selectors, and Man PagesCompare Source
This release expands the bootstrap package model with Nix support and environment selectors, teaches packslip tools to ship man pages, and adds a task-scoped quiet setting. It also carries a wide batch of packslip, bootstrap, and cross-platform fixes plus a major speedup to dotfiles history rebuilds.
Added
[bootstrap.packages]manager on Linux and macOS. Declare packages with thenix:prefix and apply them through your normal Nix profile; the manager supports use, apply, status JSON, and targeted upgrades while leaving Nix sources, caches, trust, and profile rollback under Nix control. This also addsmise bootstrap packages export --format nixto emit a deterministic NixOS moduConfiguration
📅 Schedule: (in timezone Europe/Paris)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.