-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
New and improved conflicts_with
handling for formulae and casks
#16398
Comments
My thoughts: I don't have a great grasp on how many formulae/casks we have right now that cannot be installed side-by-side (and just not both linked). If this number is not that many, I'd probably be in favor of changing However, if there are a lot of formulae that can't be installed side-by-side, then we should probably just move to a new DSL to minimize problems created for us and for other taps. I don't think there's a good reason to go the JSON route really, since I think that should be reserved more for things like audits tap-wide maintenance stuff, not formula functionality |
My suspicion is: this is most, maybe all, cases.
Agreed 👍🏻 For some prior art: we already do some relatively smart stuff here with versioned formulae linking and formula/cask linking when they have an identical name/token.
I don't feel strongly either way here but @Homebrew/maintainers may do. With the prior we'll need to be fairly confident that we don't break things for third-party taps i.e. we should do this for Homebrew/homebrew-core first and verify no formulae changes are needed. A middle ground is a
👎🏻 from me but good to explore all options. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
I think most handling will be fine for formula-cask conflicts and probably formula-formula on macOS. On Linux, I would be worried about RPATH handling as I recall that we only save keg-only formula paths in addition to |
Verification
brew install wget
. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.Provide a detailed description of the proposed feature
Right now,
conflicts_with
does not allow you to install two formulae or casks with conflicts with each other. However, in some cases, the two formulae should still be able to be installed and simply not both linked at the same time. Instead, we should handle this more intelligently by allowing side-by-side installs when possible, and simply avoid linking.Here are some possible ways to handle this:
conflicts_with
DSL to allow side-by-side installs and handle conflicts on the linking endlink_conflicts
DSL (maybe in addition toconflicts_with
.json
file inside each tap. The only benefit of this that I can think of is that we wouldn't have to worry about making sure eachconflicts_with
/link_conflicts
is properly paired with a corresponding entry in the conflicting formula/caskWhat is the motivation for the feature?
Homebrew/homebrew-cask#12822, #16374, #16309, and others
How will the feature be relevant to at least 90% of Homebrew users?
This is relevant to anyone installing a formula or cask that conflicts with something else
What alternatives to the feature have been considered?
Leaving as-is
The text was updated successfully, but these errors were encountered: