Openj9: What JDK releases are "supported" by OpenJ9?

Created on 5 Apr 2018  路  36Comments  路  Source: eclipse/openj9

Now that we have begun having TCK certified builds of OpenJDK with Eclipse OpenJ9 available at AdoptOpenJDK, I think it's time we came up with a clear support policy for the OpenJ9 project, especially since new JDK levels are coming and going at a faster cadence than ever before.

I took a crack at drafting a statement, just so we could have something to drive discussion. All feedback is welcome from anyone (committers, contributors, users, etc). When the discussion tails off, I would like to have a formal vote from the committers to explicitly agree to the final support statement we will decide to make.

What follows is my proposed first draft. Although it's possible we can do a graduation review in the next couple of years, I chose to dodge the issue of "when" and simply show a stream of imagined quarterly OpenJ9 releases called 0.N.0 .

What JDK releases does Eclipse OpenJ9 support?

The Eclipse OpenJ9 project source code can be built against multiple JDK levels starting with JDK8, so the question of support has a more complicated answer than at OpenJDK. Our community is committed to supporting JDK levels so long as they are supported at the OpenJDK open source project with a significant user base. Currently, Eclipse OpenJ9 produces a release every quarter that can build against all JDK levels currently supported by the OpenJDK community and we are committed to accepting problem reports when using Eclipse OpenJ9 against a supported OpenJDK level, with fixes being delivered in each new (currently quarterly) release of Eclipse OpenJ9.

The table below summarizes which JDK levels are expected to be supported by which Eclipse OpenJ9 releases, along with (projected) release dates. All future dates and support expectations are predictions that may change depending on how the OpenJDK and OpenJ9 projects evolve over time. Note also that columns may be removed from this table over time (for example, JDK9 will be removed from this table shortly since it will no longer be supported by any open project).

Released and about-to-be released:

Eclipse OpenJ9 Release Release date / projected release date JDK8 JDK9 JDK10 JDK11 JDK12 JDK13
0.8 Mar 2018 Yes No
0.9 May 2018 Yes No Maybe

Imagined future release predictions given current support position at OpenJDK:

Eclipse OpenJ9 Release Release date / projected release date JDK8 JDK9 JDK10 JDK11 JDK12 JDK13
0.10 Aug 2018 Yes No Yes
0.11 Oct 2018 Yes No No Yes
0.12 Jan 2019 Yes No No Yes
0.13 Apr 2019 *CurrentlyNo No No *CurrentlyNo Yes
0.14 Jul 2019 *CurrentlyNo No No *CurrentlyNo Yes
0.15 Oct 2019 *CurrentlyNo No No *CurrentlyNo* No Yes

We fully expect that OpenJDK8 will have open community maintainers past January 2019, so we expect to be able to continue supporting JDK8 beyond that date. But we won't be able to make a definitive support statement until community maintainers have been established. JDK11, and all future "LTS" releases, are in a similar state.

Platform support

The Eclipse OpenJ9 project is open to supporting any hardware/operating system platform (so long as there are community members willing to maintain a platform), but for practical reasons the Eclipse OpenJ9 JVM does not currently run on every platform. Below are current platform support details along with some additional platforms we hope to become supported in the forseeable future.

Platform OS Toolchain details OpenJ9 release notes
Linux x86-64 Ubuntu 16.04 gcc 4.8.4 Since 0.8.0, supports heaps 60GB and below
Linux on POWER LE 64-bit Ubuntu 16.04 gcc 4.8.4 Since 0.8.0, supports heaps 60GB and below
Linux on Z 64-bit Ubuntu 16.04 gcc 4.8.4 Since 0.8.0, supports heaps 60GB and below
... ... ... ...

[ NOTE: I put this table together quickly from memory and didn't actually add the newest Windows/MacOS/ARM platforms that are being worked on, so it could almost certainly be improved/corrected. Please provide feedback in comments and I or another committer will update the table in place here. ]

high question

Most helpful comment

Ok, so the discussion has clearly wound down, and I don't think anyone has expressed any objection to the basic verbiage, though we need to polish and get the actual platform support tables created.

I formally request that the committers explicitly mark their approval of this basis support statement, since the committers are the group of people who will most directly control how we implement it.

@amicic @andrewcraik @charliegracie @DanHeidinga @0xdaryl @dmitripivkine @doveye @fjeremic @gita-omr @gacholio @jduimovich @joransiu @zl-wang @keithc-ca @llxia @mpirvu @pmhayward @pshipton @smlambert @SueChaplain @vijaysun-omr @ymanton @Jonathanwoodford

(if I somehow missed someone, please let me know or @ mention them in a following comment to draw their attention to this vote)

Please add your +1, 0, or -1 to this comment. The vote ends at midnight EST on Friday, April 27.

All 36 comments

That sounds reasonable. The pattern I deduce from the table seems to be that Eclipse OpenJ9 will support two OpenJDK code streams at any one time, those being the latest Oracle-led LTS release and the latest short term support released code base.

I assume from the tone of the statement that OpenJ9 would support any JDK that were to enjoy broad adoption and attract (potentially community-led) support; i.e. it is driven by the longevity of the JDK and not necessarily Oracle's plans.

I further assume, since there is no mention of OS and CPU platforms, the intent is to support JDKs on all platforms maintained by Oracle, potentially plus other platforms that may vary in time, or by code stream. Maybe useful to capture the OpenJ9 platform plan somewhere too.

i.e. it is driven by the longevity of the JDK and not necessarily Oracle's plans.

Yes, that's the intention.

Maybe useful to capture the OpenJ9 platform plan somewhere too.

Agreed. During our last community call, we discussed capturing the matrix of JDK level x Platforms as not all platforms may be supported on all JDK levels and recording that info in the OpenJ9 release plans at Eclipse.

The pattern I deduce from the table seems to be that Eclipse OpenJ9 will support two OpenJDK code streams at any one time, those being the latest Oracle-led LTS release and the latest short term support released code base.

That's what it looks like right now, but (thinking positively :) ) when community maintainers are announced for the JDK8 stream, I expect OpenJ9 will be supporting both JDK8 and JDK11, so the current appearance of a pattern may be a little bit misleading just because of where OpenJDK is with JDK8 at the moment.

Platforms is a good point. We have no current plans to port OpenJ9 to Solaris, so that's one unticked box. We're hoping to add Windows to the mix in OpenJ9 0.9.0, and there has been some progress on MacOS and 32-bit ARM (and talk of 64-bit ARM) but they aren't quite there yet. I added a Platform Support section to the bottom of the first comment @tellison @DanHeidinga does that look like the thing you're imagining?

What do people think about including a link to the build environment description for each of the platforms we support (probably in the "toolchain details" column? Docker files for platforms that support docker, or ansible scripts if that's a more useful thing?

does that look like the thing you're imagining?

I think we'll need one of those per JDK level as some of the platforms, compilers, OSes may differ based on supported levels in the upstream OpenJDK (or Extensions) projects.

Blech. I suppose that's fair....maybe a JDK8 section, a JDK9 section, etc.

Blech. I suppose that's fair....maybe a JDK8 section, a JDK9 section, etc.

OpenJDK takes a similar approach defining platforms and build environments so while this does evoke a "Blech" response at least everyone is consistently "Blech" =)

@mstoodle

Release predictions:

Your OpenJ9 release dates line up with the Oracle CPU dates but they don't keep exactly in step.

E.g We have May 2018 / August 2018 (assumes April CPU is merged and available by May, July CPU by August), but then your later dates realign with the CPU ... October 2018, January 2019, April 2019, July 2019.

Do you envisage a time when we will be able to release in line with CPU or should those later dates also assume some "contingency" for merging and building after the CPU is available in OpenJDK?

I like your release prediction table. Showing LTS vs feature release status for the JDKs levels would help people see the wisdom in the plan, I think?

Platform support:

Am I correct in thinking that we only support platforms that AdoptOpenJDK build? So, we are showing Ubuntu 16.04, but we would not include other Linux distributions unless there were machines at Adopt that were building and JCK testing them?

Agree with Dan's comment about JDK levels. One table per JDK level .. each with rows for Linux/AIX/Win etc

What do people think about including a link to the build environment description for each of the platforms we support (probably in the "toolchain details" column? Docker files for platforms that support docker, or ansible scripts if that's a more useful thing?

  • I think this is a good idea although I am not that familiar with the ansible format. Presumably the links would take people to the Adopt files, not ones in the openj9/buildenv directory? (AIX has yum files there as well as docker)

For the OpenJ9 release notes column, would it be better to link people to the actual release notes rather than including comments? E.g. https://github.com/eclipse/openj9/blob/master/doc/release-notes/0.8/0.8.md ... not that this release note currently has its own platform support table, so we should remove any duplication to avoid confusion.

Do you envisage a time when we will be able to release in line with CPU or should those later dates also assume some "contingency" for merging and building after the CPU is available in OpenJDK?

There is certainly an "aspirational" aspect to the future dates. Can we do it in the same month? I'm not sure, but I think it's a good goal and we should be trying the "reel in" our releases to be as close as we can manage.

Am I correct in thinking that we only support platforms that AdoptOpenJDK build?

Yes and no. I think we should decide the set of platforms for which OpenJDK with Eclipse OpenJ9 should be built and supported, and hopefully that would also be the set of platforms that AdoptOpenJDK would then build.

For the OpenJ9 release notes column, would it be better to link people to the actual release notes rather than including comments?

yep, i just didn't think of it when i made the table :) .

Ok, so the discussion has clearly wound down, and I don't think anyone has expressed any objection to the basic verbiage, though we need to polish and get the actual platform support tables created.

I formally request that the committers explicitly mark their approval of this basis support statement, since the committers are the group of people who will most directly control how we implement it.

@amicic @andrewcraik @charliegracie @DanHeidinga @0xdaryl @dmitripivkine @doveye @fjeremic @gita-omr @gacholio @jduimovich @joransiu @zl-wang @keithc-ca @llxia @mpirvu @pmhayward @pshipton @smlambert @SueChaplain @vijaysun-omr @ymanton @Jonathanwoodford

(if I somehow missed someone, please let me know or @ mention them in a following comment to draw their attention to this vote)

Please add your +1, 0, or -1 to this comment. The vote ends at midnight EST on Friday, April 27.

+1

+1

+1

+1

+1

+1

JDK11 is in the same state as JDK8. Oracle has only committed support in OpenJDK for 6 months. In the table it should be marked as *CurrentlyNo from 0.13 on

+1

+1

+1

+1

+1

@pshipton I updated the table, thanks for pointing that out.

+1

+1

+1

+1

I think that's +18 with 5 "abstains" and no down votes. I'll call that "passed" but I'll still chase down the abstains to see if they're really just "forgots". Thanks to everyone who contributed to the discussion and for voting!

Let's find a place on our web page to put this info and make it obvious to find from the front page.

@mstoodle Created an issue at the website repo.

@amicic @doveye @gacholio @jduimovich @pmhayward

For completeness, would you please explicitly register your vote here so I can close this issue?

I preferred to stay neutral (since I do not understand enough what are reasons for/against supporting more/less releases etc), but since I don't see anything obviously wrong with the current proposal, you can count me as +1, if you will.

Ditto amicic :)

+0

+1

+1

Thanks, everyone, for participating in the vote. I'll call this issue closed since @SueChaplain has opened https://github.com/eclipse/openj9-website/issues/79 to deal with the specifics to incorporate the support statement into the web site.

Was this page helpful?
0 / 5 - 0 ratings