Skip to content

registry: add github: fallback backends for locally-verified tools#10000

Closed
matracey wants to merge 1 commit into
jdx:mainfrom
matracey:registry-github-fallbacks
Closed

registry: add github: fallback backends for locally-verified tools#10000
matracey wants to merge 1 commit into
jdx:mainfrom
matracey:registry-github-fallbacks

Conversation

@matracey
Copy link
Copy Markdown
Contributor

@matracey matracey commented May 19, 2026

Summary

Add github: fallback backend entries to 34 registry files for tools that are already in the registry. Each new entry is inserted immediately after the existing aqua: entry, providing a Tier 1 GitHub releases fallback for users who have aqua disabled (e.g. via MISE_DISABLE_BACKENDS=aqua) or unavailable, before falling through to lower-tier backends (asdf:, vfox:, cargo:, etc.).

Per the AGENTS.md backend-tier guidance, aqua: is the preferred Tier 1 backend and github: is the recommended fallback. Many existing registry entries currently fall through from aqua: directly to asdf: plugins (which AGENTS.md discourages for new entries on supply-chain grounds) or to runtime-backed backends (cargo:, go:, pipx:). This PR fills the gap.

For tools where the github: backend downloads binaries with platform-specific or versioned filenames (shfmt, yq, pre-commit), the entries use the [[backends]] table form with rename_exe to ensure the binary is callable by its expected short name.

Popularity

No popularity-check section is needed because this PR does not add any new tools to the registry. It only adds a github: backend for tools that are already accepted registry entries.

Verification

All github:owner/repo@latest installs were verified on Windows 11 x86_64 via:

$env:MISE_DATA_DIR = "<temp-dir>"
mise install "github:<owner>/<repo>@latest"
# Then: mise exec "github:<owner>/<repo>@latest" -- <tool> --version

Each install was verified for both successful installation (exit 0) AND binary callability by the tool's expected short name. Tools where the binary was not callable were either fixed with rename_exe or removed from the PR.

Caveat: Verification was performed on a single host platform (Windows x86_64). Cross-platform asset availability was not exhaustively checked.

Candidate set and results

Modified — inline backends array (31 tools, github: inserted after aqua:)

Installed tool Registry file github: backend added
act act.toml github:nektos/act
actionlint actionlint.toml github:rhysd/actionlint
age age.toml github:FiloSottile/age
bat bat.toml github:sharkdp/bat
cargo-binstall cargo-binstall.toml github:cargo-bins/cargo-binstall
cargo-insta cargo-insta.toml github:mitsuhiko/insta
cmake cmake.toml github:Kitware/CMake
cmdx cmdx.toml github:suzuki-shunsuke/cmdx
coreutils coreutils.toml github:uutils/coreutils
delta delta.toml github:dandavison/delta
fd fd.toml github:sharkdp/fd
fzf fzf.toml github:junegunn/fzf
git-cliff git-cliff.toml github:orhun/git-cliff
github-cli / gh github-cli.toml github:cli/cli
hk hk.toml github:jdx/hk
htmlq htmlq.toml github:mgdm/htmlq
jq jq.toml github:jqlang/jq
lua-language-server lua-language-server.toml github:LuaLS/lua-language-server
ninja ninja.toml github:ninja-build/ninja
pkl pkl.toml github:apple/pkl
pnpm pnpm.toml github:pnpm/pnpm
rclone rclone.toml github:rclone/rclone
ripgrep / rg ripgrep.toml github:BurntSushi/ripgrep
rust-analyzer rust-analyzer.toml github:rust-lang/rust-analyzer
shellcheck shellcheck.toml github:koalaman/shellcheck
sops sops.toml github:getsops/sops
stylua stylua.toml github:JohnnyMorganz/StyLua
taplo taplo.toml github:tamasfe/taplo
usage usage.toml github:jdx/usage
uv uv.toml github:astral-sh/uv
yamlfmt yamlfmt.toml github:google/yamlfmt

Modified — converted to [[backends]] table form with rename_exe (3 tools)

These tools ship binaries with platform-specific or versioned filenames that the github: backend doesn't automatically rename. The rename_exe option ensures the binary is callable by its expected short name.

Installed tool Registry file github: backend rename_exe
shfmt shfmt.toml github:mvdan/sh "shfmt"
yq yq.toml github:mikefarah/yq "yq"
pre-commit pre-commit.toml github:pre-commit/pre-commit "pre-commit"

Add github: backend entries to 35 registry files for tools that were
verified to install successfully via github: on Windows x86_64.

Each new entry is inserted immediately after the existing aqua: entry,
giving users a Tier 1 GitHub releases fallback when aqua is disabled
or unavailable, before falling through to lower-tier backends.
@matracey
Copy link
Copy Markdown
Contributor Author

Wow! Can't believe I'm PR #10000 for this repo! 😅 🎉

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds the github: backend to various tool definitions in the registry. Review feedback highlights that for tools like black, jq, pnpm, shfmt, and yq, the github: backend fails to rename platform-specific binaries to the standard command name, and suggests using the ubi: backend instead. Additionally, the github: backend is noted as invalid for cargo-insta and pre-commit because those repositories do not provide standalone executable binaries in their releases.

Comment thread registry/black.toml Outdated
Comment thread registry/cargo-insta.toml
Comment thread registry/jq.toml
Comment thread registry/pnpm.toml
Comment thread registry/pre-commit.toml Outdated
Comment thread registry/shfmt.toml Outdated
Comment thread registry/yq.toml Outdated
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 19, 2026

Greptile Summary

This PR adds github: fallback backends to 34 registry entries, inserting them after existing aqua: entries. Three entries (shfmt, yq, pre-commit) were converted from inline arrays to the [[backends]] table form with [backends.options] carrying a rename_exe hint.

  • 31 registry files receive a simple inline \"github:owner/repo\" insertion — straightforward and correct.
  • 3 files use rename_exe; the TOML format is valid but rename_exe is only consumed in the archive-extraction branch of install_artifact, making it a no-op for raw-binary and .pyz releases used by shfmt and pre-commit.
  • E2e tests are correctly updated to account for the new backends.

Confidence Score: 4/5

Safe to merge the 31 simple inline additions; shfmt and pre-commit github fallback backends need rename_exe changed to bin before they will work on Linux

The rename_exe option in install_artifact is only read inside the archive-extraction code path. shfmt distributes raw binaries on Linux and pre-commit distributes .pyz Python zipapps — both raw format. For both tools the option is silently skipped and the binary is left with a versioned filename, making it uncallable by its expected name when the github fallback is used.

registry/shfmt.toml and registry/pre-commit.toml — rename_exe should be replaced with bin to handle raw-binary and .pyz release formats

Important Files Changed

Filename Overview
registry/shfmt.toml Converted to [[backends]] table form; rename_exe=shfmt has no effect on raw binary releases on Linux — binary is installed as shfmt_, not shfmt
registry/pre-commit.toml Converted to [[backends]] table form; rename_exe=pre-commit has no effect on .pyz raw files — binary ends up named pre-commit-.pyz
registry/yq.toml rename_exe=yq is redundant but harmless; clean_binary_name already handles yq_linux_amd64 → yq correctly
e2e/backend/test_disable_backends Correctly updated: disables both aqua and github to force asdf fallback
e2e/cli/test_registry Correctly updated expected registry output to include github:cli/cli for gh
registry/github-cli.toml Expanded to multi-line backends with github:cli/cli inserted after aqua: — correct
registry/uv.toml Added github:astral-sh/uv after aqua: entry — correct
registry/act.toml Added github:nektos/act after aqua: entry — correct

Reviews (5): Last reviewed commit: "registry: add github: fallback backends ..." | Re-trigger Greptile

@matracey matracey force-pushed the registry-github-fallbacks branch 7 times, most recently from c2b3e1f to aa55500 Compare May 20, 2026 02:17
Comment thread registry/shfmt.toml
Comment thread registry/pre-commit.toml
@github-actions
Copy link
Copy Markdown

This PR has had merge conflicts for more than 7 days. Feel free to reopen or create a new PR if you'd like to continue working on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants