Documentation
¶
Overview ¶
Command genmise generates the maps the match package's auto-detection uses to resolve a mise tool name to the upstream whose versions it tracks. It reads the registry directory of a mise checkout (github.com/jdx/mise) and records, for each tool, the provider its backends prove carry the pinned versions.
A tool's backends are interchangeable installers for the same pinned version. A GitHub-shaped backend - aqua:, github:, or ubi:, in any position - is preferred, since GitHub tags are the most universal version source, and the tool maps to that owner/repo under the github provider. A tool with no GitHub backend falls back to its first package-manager backend: pipx: to pypi, npm: to npm, cargo: to crates, mapping to the package that ecosystem installs. Tools backed only by an unsupported ecosystem (core:, asdf:, gem:, ...) are skipped, as are tools the match package already maps by hand (HashiCorp products, the Go toolchain, the Node.js runtime), so the curated mappings stay authoritative.
The output declares one map per provider: miseRegistryTools (github, name to owner/repo), misePypiTools, miseNpmTools, and miseCratesTools (name to package).
Usage:
go run ./internal/tools/genmise [-src <mise-checkout>] [-ref <branch>] [-o <file>]
Without -src the mise repository is shallow-cloned to a temporary directory at the -ref branch (main by default), and the header records the commit the map was generated from.