JDK 9 is not (yet) Feature Complete -- how will we get there?
mark.reinhold at oracle.com
mark.reinhold at oracle.com
Fri Jun 10 14:24:37 UTC 2016
The JDK 9 schedule [1] lists a date for the Feature Complete milestone
of 2016/5/26, about two weeks ago. There's been some concern that this
means that the JDK 9 (and hence Java SE 9) feature set is somehow frozen,
but that's not the case.
The milestones listed in the JDK 9 schedule are condition-driven rather
than date-driven, as noted along with the milestone definitions [2]. We
try our best to reach the goal of each milestone by its scheduled date.
If we miss a date then we don't just blindly constrain further work so as
to fit the date, we instead manage the remaining changes relevant to the
milestone so as to reach its goal in a reasonable time frame without
putting the final GA date at undue risk. When we finally do reach the
goal then we declare the milestone on that date.
The goal of the Feature Complete milestone is to get all of the planned
features, i.e., JEPs, and smaller enhancements integrated into the JDK 9
master forest, together with their unit tests. As of today most JEPs
targeted to JDK 9 have been completed [3]. Fifteen JEPs remain, and a
number of small enhancements are listed as intended for JDK 9 but are
still either open or in progress.
To manage the remaining JEPs and small enhancements so that we can reach
the Feature Complete state in a timely fashion I hereby propose the
following process:
- If you own a JEP or a small enhancement that is not yet complete then
you can request an FC extension as follows: Update the JBS issue to
add a comment whose first line is "FC Extension Request". In that
comment describe the remaining work to be done, the risk level, a
brief justification, and your best estimate of the date by which the
feature will be complete. Add the label "jdk9-fc-request" to the
issue.
- The Area Leads, relevant Group Leads, and I will review such requests
on a regular basis, at least weekly if not more often. One of us
will take one of the following actions:
- Approve the request by adding the label "jdk9-fc-yes".
- Reject the request by adding the label "jdk9-fc-no", along
with a comment describing the reason for this action.
- Request more information by adding the label "jdk9-fc-nmi"
("nmi" = "needs more information"), along with a comment
describing what information is requested.
- If you're asked to provide more information for an FC extension
request then please do so in a new comment in the issue, and then
remove the "jdk9-fc-nmi" label so that we see that it's ready for
re-review.
- If your request is approved then update the issue's due date to the
expected completion date.
- If you own a JEP that's targeted to JDK 9, but won't make it, then
please propose to drop it [4]; this will move the JEP back to the
Candidate state unless there are strong objections. If you own a
small enhancement whose fix version is 9, but won't make it, then
please clear the fix-version field.
If a JEP has been granted an FC extension then enhancement issues that
block the JEP's issue are automatically considered to have FC extensions.
If a JEP has not yet been targeted to JDK 9 then you can still propose to
target it to the release, but going forward the bar for accepting new
features will be increasingly high.
For the record, the Area Leads are Mikael Vidstedt (VM) and Brian Goetz
(Language and Libraries). The relevant Group Leads are as follows, per
the Census [5]:
Artem Ananiev - AWT
Alan Bateman - Core Libraries
Tim Bell - Build
Daniel D. Daugherty - Serviceability
Jonathan Gibbons - Compiler
Vladimir Kozlov - HotSpot
Michael McMahon - Networking
Sean Mullan - Security
Masayoshi Okutsu - Internationalization
Pavel Porvatov - Swing
Phil Race - 2D Graphics & Sound
Dalibor Topic - Porters
JDK 9 Committers are invited to comment on this process proposal. If no
serious objections are raised in one week's time, by 15:00 UTC on 17 June
2016, then this is the process that we'll use.
In anticipation that we will use this process, more or less, I encourage
owners of not-yet-complete JEPs and small enhancements to go ahead and
request extensions as described above, if desired, so that we can move
quickly once the process is in place.
- Mark
[1] http://openjdk.java.net/projects/jdk9/
[2] http://openjdk.java.net/projects/jdk8/milestones#definitions
[3] http://j.mp/jdk9-features-jbs
[4] http://cr.openjdk.java.net/~mr/jep/jep-2.0-02.html#Proposed-to-Drop
[5] http://openjdk.java.net/census
More information about the jdk9-dev
mailing list