Goal
----
As an OpenJDK developer I'd like to fix a bug in a released JDK version, for example JDK 8u201. Getting Your Fix into an Updates Release Train ---------------------------------------------- The first step to get your bug fixed in a released JDK version is to attempt to reproduce it with latest JDK: http://hg.openjdk.java.net/jdk/jdk/ (jdk/jdk). If that's the case, the next step is to fix the bug in JDK head[1] and then follow the backport-chain which is usually in this order: 1. jdk/jdk (JDK N) 2. jdk-updates/jdkXu (where X == N-1) 3. jdk-updates/jdkYu (where Y is the current LTS version) 4. jdk8u/jdk8u Note that it is advised to let the fix in latest JDK receive a certain amount of testing before a backport is being requested for an updates release. Current Fast-Release-Cadence Development Model ---------------------------------------------- Understanding the fast release cadence development model helps when trying to get bugfixes into a released JDK version. Below is a ascii-art picture of JDK 13 at a point where JDK 12 has not been released yet. That would be a time around February 2019. | ,-- JDK 12, RC | | | ,- JDK 12, ,- JDK 12, | ,-- JDK 12 GA Notes | | RDP 1 | RDP 2 | | | \|/ \|/ | \|/ | ` ` | ` | \|/ | ` | | ,--jdk-updates/jdk11u---- ,------------------------jdk-updates/jdk12u | ,---jdk/jdk11-+ ,------------jdk/jdk12-------+ Time |-+----------------------------+-----------------------jdk/jdk--------------------------- | | , | /|\ | | | (A) ----------------` Example: Getting Bug Fixed at Time (A) -------------------------------------- Considering the above example we'll walk you through the process of getting the bug fixed at point in time (A) as depicted above. At that point the jdk/jdk tree is the development tree for JDK 13, the JDK 12 stabilization tree has been branched already at point RDP 1. What's more, a JDK 12u updates tree has been created as well at point RDP 2. Let our example bug have priority 3. Once we have pushed the fix to jdk/jdk, what happens next? According to the JDK Release Process Rules[2], RDP 2, means that only priority 1 and priority 2 bugs may be fixed beyond RDP 2 point. Note that RDP 2 refers to Ramp Down 2 Phase. That means that the JDK 12 stabilization tree is frozen for our P3 bug. Instead, we will get the bug-fix into an JDK 12u update by following the JDK updates rules[3]. In our case we add label 'jdk12u-fix-request' to the master bug and add a comment with heading "Fix Request" with some reasoning, risk assessment, testing done, etc. Once, JDK 12 maintainers approve the backport by adding the 'jdk12u-fix-yes' label, we can now push the fix to the jdk-updates/jdk12u tree. Once we have the bug fixed in jdk/jdk and jdk-updates/jdk12u we may request a backport to the latest LTS release, JDK 11 in our example. Note that persuing this backport may happen in parallel to JDK 12 backports. Rules as determined by the relevant updates project apply. Finally, once the fixes were pushed to JDK 12 and JDK 11 updates, the bug may be backported to JDK 8u. Again, project specific approval rules apply. Appendix -------- Where should I push backport patches to? JDK 12u backports tree: http://hg.openjdk.java.net/jdk-updates/jdk12u JDK 11u backports tree: http://hg.openjdk.java.net/jdk-updates/jdk11u-dev JDK 8u backports tree: http://hg.openjdk.java.net/jdk8u/jdk8u-dev/ Which rules do apply for my backport? JDK updates rules: http://openjdk.java.net/projects/jdk-updates/approval.html JDK 11u updates rules: https://wiki.openjdk.java.net/display/JDKUpdates/JDK11u JDK 8u updates rules: https://wiki.openjdk.java.net/display/jdk8u/Guidelines+for+working+on+jdk8u References ---------- [1] http://openjdk.java.net/projects/jdk-updates/groundrules.html [2] http://openjdk.java.net/jeps/3 [3] http://openjdk.java.net/projects/jdk-updates/approval.html
...
Overview
Content Tools
ThemeBuilder