(Add more information) |
m (→Summary: elaborate a tiny bit more) |
||
Line 5: | Line 5: | ||
== Summary == | == Summary == | ||
Make Java 8 (OpenJDK 8, java-1.8.0-openjdk) the default Java runtime. The current default | Make Java 8 (OpenJDK 8, <code>java-1.8.0-openjdk</code>) the default Java runtime. The current default Java runtime (OpenJDK 7, <code>java-1.7.0-openjdk</code>) will be removed. | ||
This is essentially an upgrade of OpenJDK. | |||
== Owner == | == Owner == |
Revision as of 19:02, 13 March 2014
Java 8
Summary
Make Java 8 (OpenJDK 8, java-1.8.0-openjdk
) the default Java runtime. The current default Java runtime (OpenJDK 7, java-1.7.0-openjdk
) will be removed.
This is essentially an upgrade of OpenJDK.
Owner
- Name: Omair Majid
- Email: omajid@redhat.com
- Release notes owner:
Current status
- Targeted release: Fedora 21
- Last updated: 2014-03-13
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
The current default Java 7 runtime in Fedora is OpenJDK 7. The latest version of OpenJDK, 8, is to be released by the end of March 2014. Given that Fedora 21 will not be released before August, it makes sense to include the latest version of OpenJDK in Fedora 21.
OpenJDK 8 is a significant update to Java. It brings in significant new features to the Java language, including lambdas, a new javascript engine and lots of new library features. A complete list of features is available.
OpenJDK 8 is a backwards compatible update. Theoreticallyn everything that worked against OpenJDK 7 should continue working against OpenJDK 8. There are a few exceptions:
- OpenJDK8 is much more strict when it comes to building javadocs. Many
-javadoc
package in Fedora fail to build. Those that are built should continue working just fine. - Packages that rely on non-public OpenJDK API may fail to build/run.
Benefit to Fedora
Shipping the latest version of OpenJDK works towards the Fedora goal of "First". OpenJDK 8 brings significant new features to the Java language and libraries and platform.
If what happended with OpenJDK 6 is going to repeat, then development of OpenJDK 7 will stop before Fedora 21 is End-of-Life'ed and security patches may not be backported to OpenJDK 7 (or if they are, they will be severly delayed). If Fedora 21 ships with OpenJDK 7, this will leave users vulnerable to exploits.
Scope
- Proposal owners:
- Deprecate/Obsolete
java-1.7.0-openjdk
- Promote
java-1.8.0-openjdk
to a full java runtime status - In case of a mass rebuild, supply/apply patches to fix build against OpenJDK 8
- Deprecate/Obsolete
- Other developers:
icedtea-web
maintainers will need to updateicedtea-web
to run against OpenJDK 8- Other java packagers will need to apply patches to their java package to ensure they build against OpenJDK 8
- Everyone will need to test packages to verify that they work against OpenJDK 8
- Release engineering: N/A (not a System Wide Change)
- Remove
java-1.7.0-openjdk
- Mass-rebuild (?) all package related to java
- Remove
- Policies and guidelines: N/A (not a System Wide Change)
- Most
-javadoc
packages fail to build. The OpenJDK 8 maintainers and the Java SIG is working on identifying a solution. The solution may require guideline changes making-javadoc
subpackges optiona.
- Most
Upgrade/compatibility impact
Upgrades from previous Fedora versions should be seamless. java-1.8.0-openjdk will replace java-1.7.0-openjdk.
OpenJDK 8 is a backwards compatible update. Code that worked against OpenJDK 7 should continue to run against OpenJDK 8.
TODO: Add more impact concerns.
How To Test
TODO
User Experience
This change to the Java runtime should be mostly invisible to a user.
Java developers will notice that a newer version of Java is packaged.
Dependencies
None (not a System Wide Change)
Contingency Plan
TODO
- 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? product <-- Applicable for Changes that blocks specific product release/Fedora.next -->