Conversation
goreleaser is phasing out `brews:` in favor of `homebrew_casks:` (https://goreleaser.com/deprecations/#brews). Migration: - rename `brews:` -> `homebrew_casks:` - drop `directory: Formula` (default is Casks) - drop the formula-style `install:`/`test:` blocks (casks don't use them) - drop `license:` (no equivalent in cask DSL) - add a post-install hook that strips com.apple.quarantine, since the released darwin binaries aren't code-signed/notarized — without it macOS Gatekeeper will refuse to launch them. Note: the homebrew-tap repo will need a `tap_migrations.json` and the old `Formula/nssh.rb` removed so existing `brew install abizer/tap/nssh` users get pointed at the cask. That change lives in the tap repo. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
abizer
added a commit
to abizer/homebrew-tap
that referenced
this pull request
May 6, 2026
## Summary Companion to [abizer/nssh#8](abizer/nssh#8), which switches the nssh release pipeline from `brews:` to `homebrew_casks:`. - Deletes `Formula/nssh.rb` (stale at v2.1.0; goreleaser will no longer update it). Once `Casks/nssh.rb` is published by the next release, `brew install abizer/tap/nssh` will resolve to the cask automatically. ##⚠️ Existing formula installs need a manual step `tap_migrations.json` was originally part of this PR but [Codex correctly pointed out](#2 (comment)) that same-tap formula→cask migrations are a no-op there (Homebrew's migration resolver only fires when the destination tap differs). It's been dropped. Anyone with the old formula installed will need to run, one time: \`\`\` brew uninstall nssh brew install --cask abizer/tap/nssh \`\`\` ##⚠️ Merge ordering **Do not merge this until a post-migration nssh release has actually written `Casks/nssh.rb` to this tap.** Sequence: 1. Merge nssh#8 2. Cut a release (Actions → release → Run workflow, \`patch\`) 3. Verify \`Casks/nssh.rb\` lands on master here (auto-committed by github-actions[bot]) 4. Then merge this PR Otherwise there's a window where \`brew install abizer/tap/nssh\` 404s. ## Test plan - [ ] After step 3, on a fresh machine: \`brew install abizer/tap/nssh\` installs the cask - [ ] On a machine with the old formula installed: \`brew uninstall nssh && brew install --cask abizer/tap/nssh\` works - [ ] \`nssh\` runs without macOS Gatekeeper "damaged / cannot be opened" alert (post-install hook in nssh#8 strips quarantine) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
brews:is being phased out by goreleaser (deprecation notice). The v2.4.0 release log warned about this.homebrew_casks:, drops the formula-only fields (directory,license,install,test), and adds a post-install hook that stripscom.apple.quarantineso unsigned darwin binaries actually launch on modern macOS.Follow-up (in
abizer/homebrew-tap)tap_migrations.jsonmappingnssh→ cask, and delete the oldFormula/nssh.rbso existingbrew upgrade nsshusers land on the cask.Test plan
patchrelease via Actions → release → Run workflow; confirm goreleaser publishes a cask toabizer/homebrew-tapunderCasks/nssh.rbbrew install --cask abizer/tap/nsshon macOS, thennsshruns without the "damaged / cannot be opened" Gatekeeper alert🤖 Generated with Claude Code
Note
Low Risk
Low risk: release packaging config change only, but it can affect macOS install/upgrade behavior if the tap expects a formula vs cask or the post-install hook misbehaves.
Overview
Updates GoReleaser Homebrew publishing from deprecated
brewstohomebrew_casksfornssh, removing formula-specific fields (directory,license,install,test).Adds a macOS-only post-install hook to strip the
com.apple.quarantinexattr from the staged binary so the downloaded (non-notarized) app can launch without Gatekeeper blocking.Reviewed by Cursor Bugbot for commit 4c11a84. Bugbot is set up for automated code reviews on this repo. Configure here.