-
Notifications
You must be signed in to change notification settings - Fork 15
feat: Implement Homebrew cask migration with dual distribution #155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
|
Ok, we've reverted back to only supporting formula installs now because cask installs require signing on mac. |
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