-
-
Notifications
You must be signed in to change notification settings - Fork 69
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
Behavior change in building bottles against bottles from previous macOS versions #705
Comments
This behaviour grew out of a discussion from several places, but one place to look is here: #683 In Homebrew/core we don't want to bottle a formula using dependencies built on an earlier version of macOS to avoid subtle compatibility issues. We already required this informally when building bottles: Homebrew/homebrew-core#87708. However, it's too easy to accidentally dispatch a bottle job for a formula with an unbottled dependent, so we decided it was better to have If I agree that it would be a good idea to generate a console message to indicate which dependency is preventing bottles from being built. You can, however, already see this for yourself by using |
@carlocab do you think this is logic we could or should either 1) limit to homebrew/core or 2) provide a flag to change behaviour? |
A flag would be more useful, I think. We could add it if external tap maintainers want it, but I'm not under the impression that they do (yet -- I can easily be persuaded otherwise). Thoughts, @scpeters? |
thanks for the tip about
thanks I'll experiment with
I agree that a flag would be more useful, but I don't need the flag. I'd rather just keep our bottles up-to-date, and if I can figure out the I'll close this, but people can speak up if they would prefer that we add the aforementioned flag. Thanks @carlocab and @MikeMcQuaid! |
Yup 👍🏻 |
not trying to hijack this issue/thread, but i noticed this same behavior in a different context. i've been working with the homebrew-freecad tap, and am finally getting around at attempting to bottle https://github.com/FreeCAD/homebrew-freecad/runs/4234958897?check_suite_focus=true#step:13:22 so i came across this issue doing a search for and then ran,
which gave me no useful output related to which dependency of freecad that doesn't have a bottle 🤷♂️ so at least could it possible for the homebrew test-bot to print a list of formulae that don't have bottle associated with it so the author / tap maintainer knows which formula requires bottling in order to bottle subsequent formula? |
In your case it's |
We also no longer need to handle the `:all` bottle case separately after e41d68e. Closes Homebrew#705.
Won't formulae with deps that don't have bottles at all will error out on a homebrew-test-bot/lib/tests/formulae.rb Lines 320 to 322 in 8ed8d35
I vaguely remember seeing complaints about no bottle being available when I was building formulae in my tap. In any case, I've opened #717 to display the unbottled dependencies when skipping. |
No, it should not for non-core taps. Having no bottle block is a valid and common scenario for third-party taps. |
I've merged #717 which should display unbottled dependencies when we skip a formula from these. I think this behaviour is useful (I'd want it in my own tap, for instance), but I'm open to making this customisable with flags if there's demand for it, as mentioned above:
|
there's a line in https://github.com/Homebrew/brew/blob/3.3.4/Library/Homebrew/dev-cmd/unbottled.rb#L126 I'll open a pull request to remove it, and we can discuss further there |
Related to Homebrew/homebrew-test-bot#705 Signed-off-by: Steve Peters <[email protected]>
|
I maintain the osrf/simulation tap and have noticed a recent behavior change in test-bot. It used to be that an
_or_later
suffix could be appended to the macOS version describing thesha256
data in abottle do
block, which would allow a bottle to be used with newer versions of macOS. At some point, the_or_later
suffix was removed as any bottle could be used with a newer version of macOS. Our jenkins instance at build.osrfoundation.org currently has Catalina and Big Sur nodes for building bottles. Until fairly recently, we were building bottles for both of these versions. Starting on Nov 3rd (first noticed in osrf/homebrew-simulation@fb7743c) any formula that didn't have all dependencies bottled for a given version started using--build-from-source
instead of--build-bottle
in test-bot. One of our formulae (ignition-cmake2
) without a big_sur bottle does not have compiled code, just text files, so it is truly reusable on any macOS version. When_or_later
suffixes were part of brew, I used that suffix with this package. Now, since it doesn't have abig_sur
bottle, test-bot will not build big_sur bottles for any of its dependents.I'm not asking for anything to be reverted; this has mainly spurred me to be more proactive about building big_sur bottles. I did want to mention it though because it feels like a behavior change to me, and I haven't noticed any explicit discussion about it.
As a side note, it would be really helpful to be able to generate a console message from the output of build_bottle? in
lib/tests/formulae.rb
to indicate whichdep
is preventing bottles from building built. Perhaps an API similar tounsatisfied_requirements_messages
would work.The text was updated successfully, but these errors were encountered: