(Example: ffbd316)
1. Add base manifest to tools/codegen/base directory.
See JSON files in tools/codegen/base directory for examples of the manifest.
2. Generate manifest with the following command (replace <tool> with the tool name).
./tools/manifest.sh <tool>If you're having problem with github api rate limit, you can use your GITHUB_TOKEN to increase the rate limit. If you have
Github CLIinstalled (the commandgh), you can:GITHUB_TOKEN=$(gh auth token) ./tools/manifest.sh <tool>
3. Update TOOLS.md with the following command.
./tools/update-markdown.shIf one of the CI builds fails due to a bin path or release asset_name, fix the problem in the base
manifest, and re-run the manifest tool tools/manifest.sh to regenerate the manifest json file. The
base manifest supports overriding the bin path per platform by adding the "bin" / "asset_name"
to the platform object.
If CI fails only for containers using older versions of glibc or musl, you may need to add the tool
name to one of the *_incompat arrays in tools/ci/tool-list.sh.
If the Manifest / manifest / gen job in CI fails due to outdated manifests for other tools,
please ignore it and do not modify the manifest for any tools other than the one you are currently
working on. That should be handled by the automation, and if everything else passes, your PR is okay.
Releases are performed by running the release workflow via workflow dispatch. The owner and collaborators can start the release workflow, but the owner's approval is required before the actual release.
Increase the patch version if only the following changes are included.
-
Update the
@latestversion of the tool.Rationale: Normally, tool versions are controlled by the
@<version>syntax, which is explicitly separated from the versioning of the install-action itself.Exception: If the major or minor version of the
cargo-binstallis updated, the minor version may be increased because the behavior of the fallback may change slightly. -
Fix regressions or minor bugs.
Rationale: Semantic Versioning.
-
Improve documentation or diagnostics.
Rationale: Semantic Versioning.
Usually increase the minor version otherwise.
Adding support for a new tool may conflict with existing fallbacks, so it is necessary to increase the minor version.