Enable formula-to-cask migrations within the same tap #20800
+21
−1
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.
Resolves the issue where tap maintainers could not migrate formulae to casks within their own tap using
tap_migrations.json
.Problem
Previously,
tap_migrations.json
only supported formula-to-cask migrations when the target was thehomebrew/cask
tap. This prevented third-party tap maintainers from migrating their formulae to casks when switching from building from source to distributing precompiled binaries.For example, GoReleaser maintainers wanted to migrate users from their formula to a cask within the same
goreleaser/tap
, but there was no way to automatically handle this migration duringbrew update
.Solution
Extended the migration detection logic in
migrate_tap_migration
to check if the migration target is a cask by examining the target tap'scask_tokens
, in addition to checking if the migration is tohomebrew/cask
.Usage
Tap maintainers can now add migrations like this to their
tap_migrations.json
:When users run
brew update
, the system will:Benefits
Testing
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.