-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
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
adoptopenjdk: add caveat pointing to the external tap #54074
Conversation
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.
I’m 👍 on that, especially from a UX perspective. Java’s roadmap is already complicated enough by itself; users may appreciate to have a reliable single source for AdoptOpenJDK casks.
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.
@commitay I'm strongly against this?! you've accepted my casks into core and then you're removing them with no notice/agreement from myself or anyone else at the AdoptOpenJDK. This is a breaking change and I would hope that homebrew had better policies than this...
Hi all - it would be great to have a voice / video call on this. The Java ecosystem is undergoing significant change which I appreciate is coming down like a ton of bricks on Brew in the past week. There are X million java developers who would like to see a good brew experience for this and I think it’s up to us to work with the maintainers to come up with a solution which has minimal harm for brew. Is there a channel we can arrange a call on? |
Let’s please start by deescalating the tone, so we can have a productive conversation. @karianna’s comment is a good example. Let’s also please understand Homebrew has no obligations to anyone and we don’t need to ask for permission to third parties if we decide to stop supporting their software.
Furthermore, insulting our policies is an unproductive way to get us to change them. I’ll remind you that it’s those same policies that are keeping the cask in right now, as @commitay has opened a discussion and asked for feedback, not outright removed it. Finally, external taps are perfectly legitimate options. The homebrew system is designed well-enough that no one is bound by the restrictions of the main repositories. So I’ll ask again that we don’t act like something is owed when it’s not and keep the discussion civil, as that’s in everyone’s best interest. |
When adding casks and deprecating the 12 As we are unwilling to support all of them and they are all considered equal, I think AdoptOpenJDK maintaining all of the casks in their own tap is the best path forward for the community. |
The way I view this is that we now have users that will be pulling our casks in from core and many people will be automating this. IMO deprecating a task would have a very negative affect for both homebrew and adoptopenjdk. I for one use homebrew in ansible playbooks and it concerns me greatly that homebrew is happy to remove those casks. I would ask that the homebrew maintainers please consider @karianna’s request to have a call with us so that we can at least discuss the options. |
Yes, so we should do so as soon as possible as the longer we wait it will affect more users. We will not add all of the versions that you wish to support and splitting them between an official tap and a external tap will be confusing for users. To be blunt: if it had been mentioned in the original PR that AdoptOpenJDK wanted to add so many versions we wouldn't be here now. |
@commitay are you and others happy to have a call to discuss this? |
I personally am not and I don't see any benefit to be gained to discussing this further via a call. |
Hi all - I'm new to homebrew, so forgive the beginner questions :-).
|
@karianna if our cask is not in homebrew-casks anymore then users will no longer be able to find our casks out of the box. The would have to actually go and find the AdoptOpenJDK repo, tap the repo using |
I was willing to accept the four casks that were proposed in the original PR, one for each major version of JDK and the equivalent of what we have for other Java upstreams. |
@commitay let's keep the 4 proposed casks in homebrew then? |
OK, thanks for the answers - one follow up question. Is there the ability to produce output to the end user from a cask saying something like: "Looking for another variant or version? Then |
This means that if you offer casks for the other versions they will be split across two repos. As AdoptOpenJDK wants to support all versions I would strongly suggest keeping in the one tap for better UX and to allow you to ensure that they are deconflicted. |
@commitay is there a way to auto tap additonal repos upon homebrew install? If the adoptopenjdk tap was auto "tapped" on homebrew install then I would not consider this a breaking change and the maintenance burdon would be taken away from the homebrew maintainers. |
Keeping them like this will be confusing no matter how we try to work around it.
|
We aren't going to auto tap something that is external to the Homebrew org. |
Well then to me I see the value in keeping our existing casks in core. |
Again, I strongly disagree. Having only one source for these casks will benefit your users. |
Leaving aside the confused-users risk for a minute, here’s a summary of all the options mentioned so far from a Homebrew maintainer’s perspective: 2018
2020Two years from now (October 2020), I would expect this to become:
|
Thanks @claui. Good points, as users installing from only this tap would expect the previous versions to be in our versions tap. |
I agree but there is the crucial issue that the cask won't be discovered as a default. I'll give some quick background on what's going on with Java / OpenJDK so you understand our motivation here. OpenJDK now has a new major version release every 6 months, with each 6th release (11, 17, 23 etc) being designated as an LTS release. Oracle produces both a commercial Oracle JDK build (you need to pay for this from day 1) and an Oracle OpenJDK build (which they only maintain for 6 months even if it's an LTS). So getting 'Java' for any platform (including brew) is no longer automatically $free or free (as in use). AdoptOpenJDK was formed to ensure that there is a $free and free (as in use) 'Java' for all platforms, especially for LTS releases. Large parts of the OpenJDK / Java ecosystem (a fair few million developers) are moving to AdoptOpenJDK binaries, many of course who develop on Mac OS X and use brew to manage their Java installs :-). So our concern for the ecosystem is that "Joe/Jane Java" can no longer easily find a $free and free to use Java for their development needs which has some pretty serious knock-on effects. I definitely don't want us to dump the burden of maintenance on the core brew committers. But I would like to see if there is a way where Java developers who use brew can automatically find the adoptopenjdk cask or at least be guided to install us via tap if they can't find us by default. Thinking out loud here - is there a precedent for having a cask here which simply prints out the "go and |
@claui - PS: I'm in awe of your table formatting skills in GitHub comments :-) |
Not really, we could make a fake cask (that would actually still be installable, just empty) that prints a message but it wouldn't be a good user experience and it would also be bad precedent for us to start adding such casks. |
OK, so auto tap and a message only cask are ruled out. I think the options we have left for users to find us by default are:
Are there any other options that I'm missing? Any workarounds that you've seen other communities follow in situations like this? |
I'd be fine with keeping one cask in this repo that tracks the current JDK version and has a caveat pointing to the external tap. The majority of our users are not Java developers so even offering two versions of the same JDK (Hotspot and OpenJ9) is confusing and doesn't align with what we offer for the other Java casks. |
That could work - let me have a chat with the rest of the Adopt team and I'll get back to you, might be 24 hours. Thanks for hearing us out! |
$ brew cask info adoptopenjdk
adoptopenjdk: 11,28
https://adoptopenjdk.net/
Not installed
==> Name
AdoptOpenJDK
==> Artifacts
==> Caveats
More versions are available in the AdoptOpenJDK tap:
https://github.com/AdoptOpenJDK/homebrew-openjdk
brew tap adoptopenjdk/openjdk
The caveat will also be displayed when a user runs |
PR moving the casks in |
Hi all - this looks good to us, thanks for adding the caveat. |
cc @Homebrew/cask
Ref: #53976 (comment), #53976 (comment)
Upstream intends to have casks for a (current) minimum of 8
adoptopenjdk
JDK versions + JRE versions.This is more than we can or want to support.