chore(release): publish a cask instead of a formula#160
Merged
Conversation
`brews:` was deprecated in GoReleaser v2.16, and `goreleaser check` has been failing on it. Homebrew's own guidance is that a cask, not a formula, is the right vehicle for a pre-compiled binary: the formula path generated something that only pretended to build from source. The conversion is not purely mechanical. A cask-installed binary is subject to Gatekeeper, which a formula-installed one was not, so the release archives -- unnotarized -- are quarantined and refuse to start on macOS. The post-install hook strips the attribute; without it this change would ship a package that installs cleanly and then will not run. The formula's `test:` block has no cask equivalent and is dropped. Both binaries (tokenops and tokenopsd) are listed; quarantine is stripped across staged_path to cover the pair. Claude-Session: https://claude.ai/code/session_01BFsL9VmX5KHW8cnLMRPei3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
brews:was deprecated in GoReleaser v2.16 andgoreleaser checkhas been failing on it. Homebrew's own guidance is that a cask, not a formula, is the right vehicle for a pre-compiled binary — the formula path generated something that only pretended to build from source.This is not a purely mechanical rename
A cask-installed binary is subject to Gatekeeper; a formula-installed one was not. The release archives are unnotarized, so macOS quarantines them and they refuse to start. The post-install hook strips the attribute — without it this change ships a package that installs cleanly and then does not run.
Both binaries (
tokenopsandtokenopsd) are listed; quarantine is stripped acrossstaged_pathto cover the pair.The formula's
test:block has no cask equivalent and is dropped.Follow-up needed after this releases
Formula/tokenops.rbinklarlabs-studio/homebrew-tapbecomes stale the moment the cask lands, and both would then exist under the same name. It needs deleting once a release has writtenCasks/tokenops.rb.Anyone who installed the formula will not be migrated automatically — Homebrew's
tap_migrations.jsonmoves a name between taps, not from formula to cask within one. They will needbrew uninstall tokenops && brew install --cask tokenops. Worth a line in the release notes.goreleaser checkpasses.https://claude.ai/code/session_01BFsL9VmX5KHW8cnLMRPei3