-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Provide components separately #1196
Comments
Homebrew doesn't make it easy to support components from individual formulae, though it is not impossible. For example, the boost formula includes most boost components but explicitly excludes python and api components as there are separate formulae for these (boost-python3 and boost-mpi) as well as the boost-bcp tool. These formulae all point to the same tarball, which must be updated in a synchronous manner when there is a new version. Here is an example for how to install component-specific files from boost-mpi. These lists of files should match the content of the I did notice that
It seems that |
I think that's something to be fixed: gazebo-release/gz-common4-release#1 Thank you for the analysis, @scpeters . I'm not hearing that it would be impossible, it would just take some work to make sure the formulae are cleanly split. |
it's not impossible, but it will take work to implement and the added complexity will increase the on-going maintenance burden to keep component formulae in sync and keep an accurate list of files to be installed for each component |
We've been breaking Ignition libraries into components that can be used independent of each other at the CMake level, as well as the Debian level. However, when it comes to Homebrew, each library is still provided as a single bottle, which makes it impossible for downstream projects to depend only on the specific components they need.
Would it be possible to add separate formulae for each component of a library, and leave the formula with the library's name as a "meta-formula" that just brings the rest?
For example, we could have the following bottles, each building a single component:
ignition-common3-core
ignition-common3-av
ignition-common3-graphics
ignition-common3-events
ignition-common3-profiler
And the
ignition-common3
formula either keeps doing what it does now, or it installs all the components above.This would make it possible for more libraries to use
ignition-common3-core
without bringing the large dependencies ofav
,graphics
, etc.The text was updated successfully, but these errors were encountered: