Skip to content

feat: add Homebrew distribution and automated versioning#8

Merged
blackaxgit merged 3 commits intomainfrom
feat/homebrew-distribution
Mar 19, 2026
Merged

feat: add Homebrew distribution and automated versioning#8
blackaxgit merged 3 commits intomainfrom
feat/homebrew-distribution

Conversation

@blackaxgit
Copy link
Copy Markdown
Owner

@blackaxgit blackaxgit commented Mar 19, 2026

Summary

  • Homebrew tap auto-update: Add update-homebrew job to release workflow that generates and pushes a Homebrew formula to blackaxgit/homebrew-clx after each stable release
  • Automated versioning with release-plz: Add workflow that creates Release PRs with version bumps + changelogs from conventional commits. On merge, creates git tag that triggers the existing release pipeline
  • README: Add "Quick Install" Homebrew section, update architecture note to include Intel

Homebrew Tap (update-homebrew job)

push tag β†’ build (ARM + Intel) β†’ release β†’ update-homebrew β†’ tap updated

The update-homebrew job downloads SHA256 checksums from the release, generates Formula/clx.rb with architecture-conditional URLs, and pushes to the tap repo. Skips pre-releases.

User install: brew tap blackaxgit/clx && brew install clx

Automated Versioning (release-plz)

merge PR (feat:/fix:) β†’ Release PR auto-created β†’ merge it β†’ tag β†’ build β†’ release β†’ homebrew

Config highlights:

  • publish = false / git_only = true β€” binary-only, no crates.io
  • git_release_enable = false β€” avoids duplicate GitHub Releases (release.yml handles it)
  • git_tag_name = "v{{ version }}" β€” matches release.yml trigger
  • version_group = "clx" β€” all 4 crates version together
  • release_always = false β€” only releases when Release PR is merged

Requires: RELEASE_PLZ_TOKEN secret (Fine-Grained PAT with Contents + PRs read/write). Tags created by GITHUB_TOKEN cannot trigger downstream workflows.

Prerequisites (manual)

  • Create blackaxgit/homebrew-clx repo
  • Add HOMEBREW_TAP_TOKEN secret
  • Add RELEASE_PLZ_TOKEN secret
  • Create baseline tag v0.1.0 after merge

Test plan

  • YAML validated (ruby parser)
  • TOML validated (python tomllib)
  • Heredoc formula generation tested locally
  • All 671 workspace tests pass
  • 0 clippy warnings
  • End-to-end: create baseline tag, merge feature PR, verify Release PR created

πŸ€– Generated with Claude Code

Add update-homebrew job to release.yml that generates and pushes a
Homebrew formula to blackaxgit/homebrew-clx after each stable release.
Add Homebrew install instructions to README.
Add release-plz workflow that creates Release PRs with version bumps
and changelogs from conventional commits. On Release PR merge, creates
git tag that triggers existing release pipeline (build β†’ GitHub Release
β†’ Homebrew tap update).

Config: unified versioning (all 4 crates), no crates.io publish,
single root CHANGELOG.md, tag format v{{ version }}.
@blackaxgit blackaxgit changed the title feat: add Homebrew tap auto-update to release pipeline feat: add Homebrew distribution and automated versioning Mar 19, 2026
Pin release-plz/action and dtolnay/rust-toolchain to immutable commit
SHAs to mitigate supply-chain attacks via mutable tags.
@blackaxgit blackaxgit merged commit 98b0e2c into main Mar 19, 2026
7 checks passed
@blackaxgit blackaxgit deleted the feat/homebrew-distribution branch March 19, 2026 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant