From Fedora Project Wiki

< Changes

Revision as of 08:39, 4 June 2018 by Jkurik (talk | contribs) (https://pagure.io/fesco/issue/1902)


java-11-openjdk - next LTS OpenJDK release and future main JDK in Fedora

Summary

OpenJDK have LTS release cadence of 2 years. JDK11, next LTS is to be released September 2018. Next LTS is JDK15, expected in 2020. This proposal, is proposing new package - java-11-openjdk, based on this LTS OpenJDK 11, which will be tech preview of next Main JDK for fedora (30?). See same process with JDK8, current main JDK, and JDK7 before. JDK8 tehc preview: https://fedoraproject.org/wiki/Features/Java8TechPreview JDK8 made main JDK: https://fedoraproject.org/wiki/Changes/Java8

See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf

Owner

  • Name: Jiri Vanek
  • Email: jvanek@redhat.com
  • Release notes owner:

Current status

Detailed Description

JDK11 is next major, LTS, release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/11/ and is landing to your Fedora. Where it will be maintained for f27 and newer. To understand JAva release process, See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html and See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf . So this is package, containing exact LTS version of OpenJDK You will always be allowed to install Used LTS in fedora build root, alongside with latest STS via alternatives. Also JDK8 will be with us for some time

The fate of JDK10 is about to be decided - it can be updated to JDK11 or obsoleted by java-11-openjdk. In all cases, it will be later updated to JDK12. Also in all cases separate package will be created for any LTS JDK - next is java-11-openjdk,

All those packages java-1.8.0-oepnjdk, java-openjdk and java-11-openjdk will be installable in parallel. You can also have installed several versiosn of java-openjdk installed next to each other. They are in your /usr/lib/jvm/java-X-openjdk-v-r.a directory. Where X is major - like 1.8.0, 9, 10, 11 or 12.

Benefit to Fedora

Fedora will keep on top of java technology, Is already containing rolling release for STSs, and now will add tech preview of next LTS. This tech preview will also allow smooth transition to new Main JDK, when java-1.8.0-openjdk will get close to its down.

Scope

  • Proposal owners:

This is isolated change. The maintainers of OpenJDK in Fedora must build the binaries, and keep them working. To keep jdk8 and jd10 installable in parallel.

  • Other developers: Should start to check theirs packages against JDK11, as it will replace JDK8 sooner or later. This is still nothing official, and you can get troubles when trying it with rpmbuild, as your dependencies may (more likely will) pull JDK8 into build root. But you can try to compile your sources against JDK10 to see how your upstream get adapted to modules, and possibly start to upstream patches.
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

java-11-opendjk can coexists with java-openjdk and java-1.8.0-openjdk (and possibly also with eoled java-9-openjdk). It should coexist with java-openjdk (12) in future too. .
Please note, that since java-9-openjdk config files of JDK are in /etc/java. Still, you can have several JDKs installed in parallel.

How To Test

dnf install java-11-openjdk
alternatives --config java
[select JDK11]
java -version
[should be 11]
alternatives --config javac
[select JDK11]
javac -version
[should be 11]

And happy hacking!


User Experience

Users will be able to write programs for JDK11 and to enjoy runtime for JDK11 specific applications

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? N/A

Documentation

N/A (not a System Wide Change)

Release Notes

  • Release Notes tracking: #TODO