This document describes some instructions for maintainers. Other contributors and users need not be concerned with this material.
When setting up the repository on GitHub, configure the following settings:
- Under
Secrets
:- Under
Actions
, add the following repository secrets with appropriate values:CRATES_IO_TOKEN
DOCKER_PASSWORD
- Under
Dependabot
, add theDOCKER_PASSWORD
repository secret with an appropriate value (e.g., that of the corresponding secret above).
- Under
- Under
Branches
, add a branch protection rule for themain
branch.- Enable
Require status checks to pass before merging
.- Enable
Require branches to be up to date before merging
. - Add the following status checks:
Build for Linux
Build for Windows
Build for macOS
Install on Ubuntu
Install on macOS
Publish a release if applicable
- Enable
- Enable
Include administrators
.
- Enable
- Under
Options
, enableAutomatically delete head branches
.
The GitHub workflow will fail initially because the jobs which test the installer script will not find any release to download. You'll need to bootstrap a release by temporarily removing those jobs or changing them to no-ops. Be aware that the create-release
job is configured to only run on the main
branch, so you may also need to temporarily change that depending on which branch you're working on.
Releasing a new version is a three-step process:
- Bump the version in
[file:Cargo.toml]
, runcargo build
to update[file:Cargo.lock]
, and update[file:CHANGELOG.md]
with information about the new version. Ship those changes as a single commit. - Once the GitHub workflow has finished on the
main
branch, update the version in[file:install.sh]
to point to the new release. Also, update therev
in the example pre-commit configuration in[file:README.md]
to point to the new version. - Create a pull request in the
Homebrew/homebrew-core
repository on GitHub to bump the version in this file.