-
-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
Remove bazel.rb Formula #31396
Remove bazel.rb Formula #31396
Conversation
The Bazel team has decided to move to their own Homebrew tap, as outlined on our blog https://blog.bazel.build/2018/08/22/bazel-homebrew.html We aren't able to maintain the Homebrew core formula any longer and would thus prefer to have it removed.
homebrew-core/Formula/libtensorflow.rb Line 15 in 3510361
|
To be honest I'm not wild about the way this has been handled by y'all upstream. By moving unilaterally rather than cooperatively with us at Homebrew you've created a pretty messy situation that now has to be a priority for the core team. I completely & wholly appreciate you've got priorities upstream as well but I can't say I appreciate how little you've valued the time of Homebrew's maintainers by dumping this on us essentially as an instruction rather than a discussion. In the last 90 days there have been 28,153 installations of So. We can actually make the transition to a new tap a pretty painless experience for existing users, and indeed, anyone who types in
Those are the steps this PR should take; formal migration & the deletion of |
tap_migrations.json
Outdated
@@ -9,6 +9,7 @@ | |||
"auctex": "homebrew/tex", | |||
"avidemux": "homebrew/cask", | |||
"awsenv": "Luzifer/tools", | |||
"bazel": "bazelbuild/tap" |
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.
Looks like this line is missing a comma at the end.
Hi @DomT4, I'd like to apologize for any confusion / pain that I have caused. It was certainly not my intention. I admittedly have been in firefighting mode for the past three weeks and didn't have any experience with homebrew when I started to work on this. I am not entirely sure what we could have done differently but if you are still open to it I am happy to discuss how we can remain in homebrew core or do a smooth migration and not cause any pain to homebrew users / maintainers. How is maintaining libtensorflow and how can I reach out to that person? Best, |
@commitay are all build deps required to be in homebrew core? Could we instead update the formula to download the Bazel binary? |
Just a discussion in advance to try and work out a path forwards, or at least ensure a smooth transition, really. As things stand I can tell you that there have been nearly 5x more installations of We support tap migrations, where necessary/desirable, but we try to have this kind of formal process to it because otherwise these splits happen & it gets... messy, for lack of a more technical phrase.
I don't think we can bend as far as supporting the full binary installation. We'd accept something like using the binary to bootstrap a build, we do something similar with things like
We don't have specific formulae maintainers, generally speaking. There's a team of core maintainers, a team of
Yes. All mandatory dependencies are required to exist in core. |
I am sorry about that. I clearly fucked up here. Please accept my apology.
For us the issue is really that we need to ship a (minimal) embedded JDK that Bazel itself runs on. We'd like to make the fact that Bazel is written in Java an implementation detail and by controlling the JDK also ensure proper testing. So I think at this point the only path forward is to do a formal migration. I'd prefer not to break libtensorflow users and so in this PR can I update the libtensorflow formula to download a Bazel binary during the compile process and remove the build dependency on Bazel? Thanks! |
Given this I'm strongly 👎 on migrating this formula to a tap for discovery reasons. If you're unable to maintain it in this repository that's fine; the community will continue to do so. |
To be more explicit: this would make the 104th most popular formula in Homebrew (in the last 90 days) harder for users to discover and install for no benefit to us.
As a side note I'm seeing more and more projects taking this approach and I'd like to say as a long-time package manager maintainer (and even longer package manager user): it's a mistake. Imagine if every tool that used the JVM insisted on shipping their own version. This wastes time downloading, compiling and storing it and means every individual project needs to bump the JVM version on a security update. Homebrew is considerably more liberal than most package managers on this front and if we're saying it's a bad idea: good luck convincing e.g. Debian/Ubuntu to do it. |
It's exactly for this reason that we would like to ensure a great experience for Bazel in Homebrew and also ensure that we can release a properly tested version to Homebrew.
The package hasn't been updated for the past three releases, any attempt to do so failed and IIUC the previous maintainer (ilovzfs) quit. I'd be more than happy to start maintaining the homebrew core package if you can point out a path forward.
I generally agree and we are very much aware of that. However, there are reasons why projects are taking this approach:
Additionally, Bazel is special in that Bazel runs on the JDK and is used to build and run Java applications. These two JDKs are often not the same (i.e. Bazel runs on JDK10, but the user would like to build a JDK8 code base). |
We don't have individual package maintainers in Homebrew. The path forward would be to reopen #31066 and address the comments and build failures.
Again, the problem here is what every project needs is different and relying on a system JDK means that all projects have what all projects need. That said, if
We allow depending on specific major versions of the JDK.
You can |
The problem we faced when trying to update the formula is that this Bazel release requires JDK9, was only tested on JDK9 but the homebrew CI does not have jdk9 and neither does cask.
Can you elaborate on this please? Are you saying that we could build the JDK from source in the Bazel formula? |
It may have only been tested on JDK 9 but does it build on either JDK 10 or JDK 8?
Perhaps. If it cannot work at all on JDK 10 or JDK 8 and the JDK can be built from source in the formula without it becoming a mess then it's an option we'll consider. |
It does build on JDK10 but the tests don't pass. The next Bazel release (in a few weeks) will be build and tested on JDK10 so that should work again, but once JDK11 is out cask will move to JDK11, remove JDK10 and a Bazel release that is tested with JDK11 will happen completely independent of this. That's why I think it's likely that we will run into the same issue again in a few months time. |
We can always wait until then and update that.
Yes, it seems likely the same issue will occur. Unfortunately this is a result of Oracle's decision to make Java 9 and 10 to not be LTS releases so I'm not sure what Homebrew can do about that, really. |
Well yes, but that's why we had to start our own tap in the first place :\ and why Homebrew users are now on an old version of Bazel.
The Java 11 LTS release [1] will also not be free and so as far as Homebrew and Bazel is concerned there will not be a LTS release for Java anymore. That's why I think maintaining our own tap will give the best user experience. |
With respect, Homebrew users are on an old version of Bazel because you made updates to Bazel without considering how it would affect them.
From our perspective we are more likely to keep a
And I disagree. I think we're going round in circles here. As far as I see the options are:
|
Ok thanks for your input. I ll try to update the homebrew core formula to build with 0.17.0 again. |
Thanks @buchgr, much appreciated. |
The Bazel team has decided to move to their own Homebrew tap,
as outlined on our blog https://blog.bazel.build/2018/08/22/bazel-homebrew.html
We aren't able to maintain the Homebrew core formula any longer
and would thus prefer to have it removed.
cc @JCount