Releases are automated via GitHub Actions using .github/workflows/cd.yml.
The workflow runs when you push a tag.
- Bump the version in
Cargo.tomland run the app to updateCargo.lock. - Update the "Unreleased" header for the new version in
CHANGELOG.md(### Added/Fixed/Changedas appropriate). - Commit and push your changes.
- Create an annotated tag with a message (the tag message is shown on the GitHub release page):
git tag -a v0.7.0 -m "Release v0.7.0"
- Push that specific tag:
git push origin v0.7.0
- Wait for the build on the Actions page.
- Stable tags (no suffix) also trigger publish jobs (crates.io, AUR, winget, Homebrew).
Use a SemVer pre-release tag like v0.7.0-rc1 / v0.7.0-beta.1.
- Create an annotated pre-release tag with tester notes:
git tag -a v0.7.0-rc1 -m "RC1: canary build for Spotify API migration"
- Push that specific tag:
git push origin v0.7.0-rc1
- The workflow will automatically mark the GitHub release as
prerelease: true. - Pre-release tags skip ecosystem publishing jobs (crates.io, AUR, winget, Homebrew).
Homebrew publishing is automated via the CD workflow. When you push a new tag:
- The
publish-homebrewjob downloads the release artifacts - Calculates SHA256 checksums for each platform binary
- Updates the formula in homebrew-spotatui
TODO: Scoop packaging is not yet set up for spotatui. If you'd like to contribute packaging, PRs are welcome!