This guide covers how to release hstry binaries to GitHub, Homebrew, and AUR.
The release process is automated via GitHub Actions:
- GitHub Releases: Automatically builds binaries for multiple platforms and creates a release
- Homebrew: Updates the formula in
byteowlz/homebrew-tapvia repository dispatch - AUR: Updates the PKGBUILD in the AUR repository
The Homebrew tap is already set up at byteowlz/homebrew-tap.
Add TAP_GITHUB_TOKEN secret to hstry repo:
-
Generate a Personal Access Token (PAT) with
reposcope:- Go to https://github.com/settings/tokens
- Click "Generate new token" → "Generate new token (classic)"
- Enable
reposcope - Generate and copy the token
-
Add the secret to the hstry repository:
- Go to https://github.com/byteowlz/hstry/settings/secrets/actions
- Click "New repository secret"
- Name:
TAP_GITHUB_TOKEN - Value: Your PAT
- Click "Add secret"
Initial formula setup:
The hstry formula has been added to byteowlz/homebrew-tap/Formula/hstry.rb. It will be automatically updated on releases.
Generate SSH key for AUR:
ssh-keygen -t ed25519 -f ~/.ssh/aur -C 'AUR SSH key'Add SSH key to AUR account:
- Go to https://aur.archlinux.org/account//edit
- Paste contents of
~/.ssh/aur.pub - Save
Test SSH connection:
ssh -i ~/.ssh/aur aur@aur.archlinux.orgYou should see a welcome message.
Add AUR secrets to hstry repo:
-
Get your private key:
cat ~/.ssh/aur -
Add secrets to the hstry repository:
- Go to https://github.com/byteowlz/hstry/settings/secrets/actions
- Click "New repository secret"
- Name:
AUR_SSH_PRIVATE_KEY - Value: Content of
~/.ssh/aur(the private key) - Click "Add secret"
-
Add email:
- Name:
AUR_EMAIL - Value: Your email address
- Click "Add secret"
- Name:
Initial AUR package:
Run the setup script:
./packaging/setup-aur.shThen, if the package doesn't exist in AUR yet:
cd aur-hstry
git add .
git commit -m 'Initial import of hstry'
git push -u origin mainNote: You'll need an AUR account to do this.
-
Update the version in
Cargo.tomlworkspace:[workspace.package] version = "0.4.4" # Update this
-
Update CHANGELOG.md with changes
-
Commit the change:
git add Cargo.toml CHANGELOG.md git commit -m "chore: bump version to 0.4.4" -
Tag the release:
git tag v0.4.4 git push origin main git push origin v0.4.4
-
The GitHub Actions workflow will automatically:
- Build binaries for all platforms
- Create a GitHub release with checksums
- Update the Homebrew formula
- Update the AUR package
If you need to re-release or trigger manually:
- Go to https://github.com/byteowlz/hstry/actions
- Click "Release" workflow
- Click "Run workflow"
- Select branch and enter the tag (e.g.,
v0.4.4) - Click "Run workflow"
The release workflow builds binaries for:
x86_64-unknown-linux-gnu- Linux x86_64aarch64-unknown-linux-gnu- Linux ARM64x86_64-apple-darwin- macOS Intelaarch64-apple-darwin- macOS Apple Silicon
Each release includes the following binaries (when built):
hstry- CLI toolhstry-tui- Terminal UI (optional)hstry-mcp- MCP server (optional)
Each release includes:
hstry-<version>-<target>.tar.gz- Platform-specific binarieschecksums.txt- SHA256 checksums for all binaries
- Go to https://github.com/byteowlz/hstry/releases
- Download the binary for your platform
- Verify checksum:
sha256sum hstry-*.tar.gz # Compare with checksums.txt
brew tap byteowlz/tap
brew install hstry
hstry --version# Using yay (recommended)
yay -S hstry
# Using paru
paru -S hstry
# Using makepkg (manual)
git clone https://aur.archlinux.org/hstry.git
cd hstry
makepkg -siCheck the workflow run logs:
- Go to https://github.com/byteowlz/hstry/actions
- Find the "publish-homebrew" job
- Check for errors
Common issues:
TAP_GITHUB_TOKENmissing or invalid- Formula syntax error
- Checksums not found in release
Check the workflow run logs:
- Go to https://github.com/byteowlz/hstry/actions
- Find the "publish-aur" job
- Check for errors
Common issues:
AUR_SSH_PRIVATE_KEYmissing or invalid- SSH connection failed
- Package already exists with conflicting changes
The aarch64-unknown-linux-gnu build requires cross-compilation tools. If it fails:
- Check the "Build aarch64-unknown-linux-gnu" job logs
- Verify the
ubuntu-latestrunner hasgcc-aarch64-linux-gnuinstalled
hstry uses protobuf (tonic/prost). If protoc errors occur:
- The workflow installs protoc on both Linux and macOS
- Verify the protoc version is compatible
Before releasing:
- Version updated in Cargo.toml workspace
- CHANGELOG.md updated with changes
- Tests passing:
cargo test --workspace - Clippy clean:
cargo clippy --workspace - All secrets configured in repository
- Tagged and pushed:
git tag vX.Y.Z && git push origin vX.Y.Z
After release:
- Verify GitHub release created
- Verify Homebrew formula updated
- Verify AUR package updated
- Test install from all sources
- Announce release (if needed)
hstry is a workspace with multiple crates. When updating the version:
-
Update the workspace version in
Cargo.toml:[workspace.package] version = "0.4.4"
-
All workspace crates inherit this version automatically via:
version.workspace = true
-
Do not update individual crate versions manually
The packaging/setup-homebrew-tap.sh script is for reference only since the tap already exists at byteowlz/homebrew-tap.
./packaging/setup-aur.shThis creates a local aur-hstry directory with:
PKGBUILD- Package build file.SRCINFO- Package metadata- Git repository initialized for AUR
./packaging/setup-all.shRuns all setup checks and provides a summary of required secrets and steps.