Skip to content

The release rewrites the tap's source formula, and the install docs name both Homebrew forms - #11

Merged
avison9 merged 1 commit into
mainfrom
feat/release-bumps-formula
Sep 21, 2026
Merged

avison9 merged 1 commit into
mainfrom
feat/release-bumps-formula

Conversation

@avison9

@avison9 avison9 commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Companion to avison9/homebrew-tap#1, which adds Formula/cdclint.rb: a formula that builds from the tagged source, the shape homebrew/core requires and the file that goes there once the notability bar is cleared.

What changes

  • Release workflow: a step after goreleaser rewrites the formula's url and sha256 in the tap to this tag's source tarball and pushes with HOMEBREW_TAP_GITHUB_TOKEN, the way the cask is written. goreleaser cannot do this itself: its formula output downloads binaries, which core refuses. Final releases only, like the major-tag step. The hash is of GitHub's source tarball for the tag, which GitHub keeps stable for tags.
  • INSTALLING.md: Homebrew resolves a name that is both a formula and a cask to the formula, so brew install avison9/tap/cdclint now builds from source (Homebrew installs go from a bottle once, then seconds of go build), and brew install --cask avison9/tap/cdclint is the binary. Both named on macOS and Linux, and in the uninstall table.
  • RELEASING.md: the step, and both install checks.

Verified

  • The sed rewrites exactly the url and sha256 lines of the real formula (dry run with v0.2.0's tarball, diff shows those two lines).
  • The workflow parses.
  • The formula itself: installed from source, brew test, brew audit --strict and brew style in ghcr.io/homebrew/ubuntu22.04 (details on the tap PR).

Order

Merge the tap PR first, then this. The next tag (v0.2.2, with #10) is the first release that exercises the step; check Formula/cdclint.rb in the tap points at that tag afterwards.

…ame both Homebrew forms

avison9/homebrew-tap now carries Formula/cdclint.rb, which builds from
the tagged source the way homebrew/core would, beside the cask
goreleaser writes. goreleaser has no source-formula support (its
formula output downloads binaries, which core refuses), so a step after
it rewrites the formula's url and sha256 to this tag: the hash is of
GitHub's source tarball for the tag, which GitHub keeps stable for
tags. It runs only for a final release, like the major tag step, and
pushes with the same token the cask uses.

Homebrew resolves a name that is both a formula and a cask to the
formula, so `brew install avison9/tap/cdclint` builds from source from
now on and the binary is `brew install --cask avison9/tap/cdclint`.
INSTALLING.md says so, on macOS and Linux, and in the uninstall table;
RELEASING.md lists the new step and the two install checks.

Verified: the sed rewrites exactly the url and sha256 lines of the real
formula (dry run with v0.2.0's tarball); the workflow parses.
@avison9 avison9 self-assigned this Sep 21, 2026
@avison9
avison9 merged commit 99e2fdf into main Sep 21, 2026
2 checks passed
@avison9
avison9 deleted the feat/release-bumps-formula branch September 21, 2026 19:11
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