feat: Implement Homebrew cask migration with dual distribution - #155
Merged
Conversation
Migrated from Homebrew formula to cask following GoReleaser best practices for distributing pre-built binaries. Maintained backward compatibility with a dual distribution strategy during the transition period. Changes: - Added scripts/completions.sh to pre-generate shell completions - Updated .goreleaser/mac.yml with dual distribution (formula + cask) - Formula (brews): Added deprecation warning directing users to cask - Cask (homebrew_casks): Configured with automatic completion installation - Added completions/ to .gitignore Key improvements: - Completions now auto-installed for both formula and cask users - Conflict prevention between formula and cask installations - Clear migration path with 3-6 month deprecation timeline - Follows GoReleaser v2.10+ recommendations for binary distribution The formula will be removed after a 3-6 month transition period, giving users time to migrate to the cask installation method. Ref: https://goreleaser.com/blog/goreleaser-v2.10/\#homebrew-casks
- Update GoReleaser config with both formula (deprecated) and cask - Add conflicts_with directive to prevent formula/cask conflicts - Create comprehensive Homebrew build validation script - Add GitHub Actions workflow for automated testing - Move acceptance tests to test-scripts/ directory The migration provides a transition period where both formula and cask work, with clear deprecation warnings guiding users to migrate from formula to cask distribution. Following GoReleaser best practices for distributing pre-built binaries.
…n approach - Remove custom_block with conflicts_with from Homebrew cask config - Update cask caveats with migration instructions for binary conflict errors - Remove conflict detection test from test-homebrew-build.sh - Remove cask validation check for conflicts_with directive - Add troubleshooting section to README for binary already exists error - Focus tests on clean installs rather than conflict detection Homebrew deprecated conflicts_with with no replacement. Instead of trying to enforce conflicts, we now rely on Homebrew's native warnings and provide clear migration instructions in both the cask caveats and README.
alexluong
approved these changes
Oct 8, 2025
alexluong
left a comment
Collaborator
There was a problem hiding this comment.
LGTM
let's make sure we update the installation instruction accordingly. A few places I have in mind:
- in README in this repo
- CLI docs: https://hookdeck.com/docs/cli
Do we embed any instructions anywhere in the dashboard? not 100% sure, just a question so we can check it of the list.
- Comment out homebrew_casks section in .goreleaser/mac.yml - Remove deprecation warning from formula caveats (formula is now primary) - Update test script to focus on formula-only testing - Remove cask-related tests and validations - Update CI workflow to test only formula distribution - Enforce Gatekeeper compliance testing (removed bypass flag) All tests pass including installation validation and binary execution. Will re-enable cask distribution once Apple Developer certificate is in place.
…s on all PRs to main
chore: temporarily disable cask distribution until code signing
Collaborator
Author
|
Ok, we've reverted back to only supporting formula installs now because cask installs require signing on mac. |
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.
Implements a comprehensive Homebrew cask migration strategy following GoReleaser v2.10+ best practices for distributing pre-built binaries.
Changes
GoReleaser Configuration (
.goreleaser/mac.yml)homebrew_casksconfiguration alongside existingbrewsformulaconflicts_with formula: "hookdeck"directive to prevent simultaneous installationTesting Infrastructure
test-scripts/test-homebrew-build.sh).github/workflows/test-homebrew-build.yml)Project Organization
test-scripts/directory for better organizationtest-acceptance.yml)Migration Strategy
This implementation provides a transition period where both formula and cask distributions work:
conflicts_withensures users can't install both simultaneouslyUser Migration Path
Testing
The new test infrastructure validates:
Run locally:
References
Next Steps
Implement #158