-
Notifications
You must be signed in to change notification settings - Fork 33
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
Proposal to add Oracle GraalVM and update GraalVM CE buildpack #294
Conversation
Hey Fabio, thanks for this proposal. I will have a deeper look once back from PTO. In the meantime, could you please fulfill the CLA requirements to make this PR mergeable? |
Thanks, enjoy your time off!
I'm already on it :) |
After having a look to the proposed RFC, and discussing with some members of the Spring team, looks like we are in favor of such proposal, both from the perspectives of aligning Buildpacks with the new GraalVM versioning/naming and to make it possible for Buildpacks users to be able to leverage Oracle GraalVM which brings a significant performance boost. There are various aspect to discuss, including about the legal of the Oracle GraalVM license, so if the Buildpack team is in favor of moving forward, maybe worth discussing that in a meeting. |
I talked with the other @paketo-buildpacks/java-maintainers about this and in general, we're in favor. The primary concern is that we can't really retire a buildpack. It's pretty difficult to even rename one. Users reference them directly in their scripts/pom.xml/build.gradle etc... and we don't have a way to notify users*. It leaves the choice of a.) not updating the buildpacks anymore leaving users unaware that updates have stopped or b.) doing something drastic to break their builds and get the user's attention. Neither are good options, and we'd only want to do that in a very extreme case. What we would propose is this instead:
This would leave the user experience like this:
As far as the implementation goes. It should be relatively simple. Minor changes in the Having said all that, we absolutely want to comply with all naming/licensing requirements for Oracle's software. If we can't take the above proposed path for that reason, or any other reason please let me know. Happy to continue discussing options. Thanks
|
Glad to hear!
Yes, that sounds reasonable to me. I wasn't aware that a buildpack can provide two different setups based on the capability requested by the user.
Considering there already is an |
It sounds like we're all basically in agreement here. Here's what I'd propose to move this forward:
Thanks! |
Yes, we are. Thanks for following up, @dmikusa.
I'm still working on this. I hope I can provide an update by the end of the week. 🤞
Will do! Again, thank you for your work. |
I have made progress on this and hope we can finally get this done this month. :) |
@fniephaus - Just wanted to check and see how things are going with the CLA? Does it look like you'll be able to get that signed?
Sorry, I forgot we hadn't updated the actual RFC yet. I made some suggestions based on my comment above. If you're OK with those, please commit them. Thanks |
I still think so, yes. Sorry for the delay, I really hope we can get this done in the next few days.
Thanks! I will take a look. |
Hello team. I look forward for an oracle graalvm buildpack! However I want to raise an issue I think was not considered during the design of this PR. While switching between Oracle JDK and Oracle GraalVM based on native capabilities is great, there are other use cases for using Oracle GraalVM as a non-native JRE. Specifically, enabling optimizations of the polyglot truffle runtime for embedded languages. Please consider giving the option to choose Oracle GraalVM even when native compilation is not requested. |
This was considered, but unfortunately, it's not a use case we'll be able to support with the initial implementation. I'm confident it's something we'll be able to support down the road based on other workstreams we have planned. It's just going to take a little longer. |
Per Oracle GraalVM's FAQ page, after one year, Oracle GraalVM reverts to the existing OTN license. In that license agreement, there is a stipulation for customers who have not purchased Java SE:
I suggest proposal update to Buildpack should mention paid licensing is required upon expiry of Early Adopter license. |
There’s no way to retroactively change the license of Oracle GraalVM versions released in the past. New versions of an LTS release are made available under GFTC for three years following the OpenJDK schedule. After three years, subsequent minor versions will be released under the OTN license. But meanwhile, another GFTC licensed LTS will be released every two years, so the simplest thing to do to stay on a free to use release is to upgrade to the latest LTS. Since LTS releases overlap for one year there’s plenty of time to migrate and stay on free. See this blog for more discussion: https://blogs.oracle.com/java/post/graalvm-free-license |
Thanks for clarifying @shaunsmith! If there is interest, we could talk about adding support/lifecycle notifications with the buildpack. We do that for a few other buildpacks. For example, with the Spring Boot buildpack we have integration with the support product lifecycle for Spring projects, allowing the buildpack to notify users when they're coming up on an EOL or when they've got EOL software. It's not in the scope of this RFC, but just thought I'd mention it as a possibility as we've seen that help users keep other software up-to-date more easily. |
An EOL notification would be an excellent way to prompt people to upgrade before support comes to an end! |
Co-authored-by: Daniel Mikusa <[email protected]>
Co-authored-by: Daniel Mikusa <[email protected]>
Co-authored-by: Daniel Mikusa <[email protected]>
This RFC is finally unblocked by the CLA. I used the opportunity to revise and simply the RFC a bit. Please take another look! |
@paketo-buildpacks/java-maintainers any other approvals / comments? From Working Group meeting 11/28:
|
@robdimsdale : there are no objections from Cloud Foundry lawyers. This RFC can be merged now. Thank you all for your patience! |
Thanks @anthonydahanne We have the necessary votes (3 of 3 Java maintainers approve), so this RFC passes. |
Summary
Add a RFC for updated GraalVM buildpacks.
edit by @anthonydahanne : Rendered output of the RFC
Use Cases
Build Java applications with GraalVM Community Edition and Oracle GraalVM.
Checklist