Release Process
The release cycle for release 8u<n> starts its initial stage in the jdk8u-dev repository as soon as the previous release enters its second stage and is confined to the jdk8u repository. The starting point is tagged with jdk8u<n>-b00. Once the previous release has happened, jdk8u-dev begins a cycle of being tagged on a weekly basis - when new changesets have been pushed - and the latest tag is promoted from jdk8u-dev to jdk8u. The tags have the format of jdk8u<n>-b<build>, where <n> is the placeholder for the update release and <build> is the monotonically increasing double digit build number.
About 6 weeks before its release, or general availability (GA), an update release enters Rampdown. From that point onwards, the update release is stabilized by only accepting very select fixes in jdk8u, such as regressions, high priority issues and test fixes. Tagging again takes place on a weekly basis - when changes have occurred - but this time, it occurs in the opposite direction, with jdk8u changes being integrated back to jdk8u-dev. At the end of the month prior to the release month, a complete freeze will be announced for jdk8u, allowing the maintainers of the security changes (currently Red Hat) to integrate these into the repository and perform final testing of the collected fixes in a secure, internal environment. On release day, the final batch of changes will be pushed to jdk8u and the final tags jdk8u<n>-b<build> and jdk8u<n>-ga will be set. To complete the process, jdk8u changes are integrated back into jdk8u-dev.
Release Engineers Checklist
When | What |
---|---|
Very early, e.g. 6 months before GA | Publish timeline on Wiki page |
Create release specific JBS filters, e.g. for monitoring backports to keep in sync with Oracle | |
Weekly During Initial Stage | Merge jdk8u-dev to jdk8u: 1. On jdk8u-dev repository (and all its subrepositories):
hg tag jdk8u<n>-b<build> 2. On jdk8u repository (and all its subrepositories):
... after successful testing ... |
Rampdown | Announce (short) freeze of jdk8u-dev for preparation of release 8u<release after n>on the mailing list |
Set status of jdk8u-dev to "closed" and jdk8u to "accepting fixes for 8u<n>" in Wiki | |
Tag jdk8u-dev (and all its subrepositories) with jdk8u<release after n>-b00:
| |
Request new JBS version openjdk8u<release after n> and change of hgupdater settings for jdk8u-dev codeline to honor new version on push | |
Update JBS filter https://bugs.openjdk.java.net/issues/?filter=36562 that shows eligible critical fixes Add version openjdk8u<n> to fixVersion | |
Await confirmation for hgupdater change, then update Wiki to set status of jdk8u-dev to "accepting changes for 8u<release after n>", announce opening of jdk8u-dev for new release on mailing list | |
Update https://bugs.openjdk.java.net/issues/?filter=36427 that shows eligible fixes for pushing Add version openjdk8u<release after n> to fixVersion | |
Weekly During Rampdown | Tag jdk8u and merge back to jdk8u-dev: 1. On jdk8u (and all its subrepositories):
... after successful testing ...
2. On jdk8u-dev (and all its subrepositories):
... after successful build ...
|
Freeze | Announce freeze of jdk8u for preparation of release 8u<n> on the mailing list. No more changes will be added to the public tree before release day. Security changes will be prepared in private. |
Set status of jdk8u to "closed" on the Wiki | |
Release day, once security changes and jdk8u<n>-ga tag have been pushed | Sync ga tag back to jdk8u-dev: 1. On jdk8u (and all its subrepositories):
2. On jdk8u-dev (and all its subrepositories):
... after successful build ...
|
Request new hgupdater setting for jdk8u codeline to honor version openjdk8u<release after n> on push |