This document outlines the steps to release a new version of autotidy.
Most version numbers are derived automatically from git tags. Only these files contain hardcoded versions:
| File | Line | Notes |
|---|---|---|
flake.nix |
version = "X.Y.Z" |
Update before tagging |
| Homebrew formula | url and sha256 |
Update after release is published |
Automatically derived:
Makefileusesgit describe --tagsnfpm.yamlversion is injected by the release workflow- Go binary version is set via
-ldflagsat build time
Edit flake.nix and update the version string:
version = "X.Y.Z";git add flake.nix
git commit -m "Bump version to X.Y.Z"git tag vX.Y.Z
git push origin master
git push origin vX.Y.ZThis triggers the GitHub Actions release workflow.
The workflow will:
- Build binaries for all platforms (darwin/linux arm64+amd64, windows amd64)
- Create archives (.tar.gz for macOS/Linux, .zip for Windows)
- Build .deb and .rpm packages for Linux
- Generate
checksums.txtwith SHA256 hashes - Create a GitHub Release with all artifacts
Once the release is published, update the Homebrew tap:
-
Go to the GitHub Release page
-
Download
checksums.txtor copy the SHA256 values for:autotidy_X.Y.Z_darwin_arm64.tar.gzautotidy_X.Y.Z_darwin_amd64.tar.gz
-
Update the formula in
homebrew-tap/Formula/autotidy.rb:
class Autotidy < Formula
desc "Automatically watch and organize files using configurable rules"
homepage "https://github.com/prettymuchbryce/autotidy"
version "X.Y.Z"
on_macos do
if Hardware::CPU.arm?
url "https://github.com/prettymuchbryce/autotidy/releases/download/vX.Y.Z/autotidy_X.Y.Z_darwin_arm64.tar.gz"
sha256 "PASTE_ARM64_SHA256_HERE"
else
url "https://github.com/prettymuchbryce/autotidy/releases/download/vX.Y.Z/autotidy_X.Y.Z_darwin_amd64.tar.gz"
sha256 "PASTE_AMD64_SHA256_HERE"
end
end
# ... rest of formula
end- Commit and push the formula update:
cd /path/to/homebrew-tap
git add Formula/autotidy.rb
git commit -m "autotidy X.Y.Z"
git pushbrew update
brew upgrade autotidy
# or for new installs:
brew install prettymuchbryce/tap/autotidy- Update version in
flake.nix - Commit version bump
- Create and push tag
- Wait for GitHub Actions to complete
- Copy SHA256 values from release checksums.txt
- Update Homebrew formula with new URLs and SHA256 values
- Push Homebrew formula update
- Test installation with
brew install