forked from jenkins-infra/release
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Java lifecycle checklist example (incomplete)
- Loading branch information
Showing
4 changed files
with
185 additions
and
0 deletions.
There are no files selected for viewing
56 changes: 56 additions & 0 deletions
56
.github/ISSUE_TEMPLATE/3-add-support-for-a-new-java-version.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
--- | ||
name: "🚀 Add support for a new Java version checklist" | ||
labels: java-lifecycle-checklist | ||
about: Track work required to add support for a new Java version | ||
--- | ||
|
||
# Stage 1: Add support for a new Java version | ||
|
||
More information is available in the [Java lifecycle guide](https://github.com/jenkins-infra/release/blob/master/docs/releases.md). | ||
|
||
## Stage Lead | ||
|
||
<!-- | ||
The stage lead is expected to perform or delegate the work. | ||
--> | ||
|
||
@<github-username of stage lead> | ||
|
||
## Preparatory work | ||
|
||
- [ ] Create three GitHub issues in this repository, one for each stage. | ||
- [ ] Create three Jira epics, one for each stage. | ||
- [ ] Request that the infrastructure team provide the new Java version on [ci.jenkins.io](https://ci.jenkins.io) and other controllers. | ||
|
||
## Primary work | ||
|
||
<!-- | ||
TODO: link to example PRs | ||
TODO: provide more details about each step | ||
--> | ||
|
||
- [ ] Update core and core components. | ||
- [ ] (Core only) Update `jenkins.monitor.JavaVersionRecommendationAdminMonitor#SUPPORTED_JAVA_VERSIONS`. | ||
- [ ] (Core only) Update `executable.Main#SUPPORTED_JAVA_VERSIONS`. | ||
- [ ] Run a local build with the new version; find and fix compilation errors and test failures. | ||
- [ ] If any new warnings are introduced, file Jira issues in the stage 2 epic. | ||
- [ ] Update the `Jenkinsfile` to test on the new version. | ||
- [ ] Update the `Jenkinsfile` for PCT. | ||
- [ ] Run a build with the new Java version. | ||
- [ ] For any failures, file Jira issues in the stage 1 epic (possibly adding a temporary workaround to keep running those plugin builds on the old Java version). | ||
- [ ] Update the `Jenkinsfile` for ATH. | ||
- [ ] Run a build with the new Java version. | ||
- [ ] For any failures, file Jira issues in the stage 1 epic. | ||
- [ ] Update the archetype and the `Jenkinsfile` for critical plugins. | ||
- [ ] Add support for the new Java version in the Windows installer. | ||
- [ ] Fix the stage 1 issues identified previously, if any. | ||
- [ ] Write a blog post announcing the beginning of a new Java lifecycle. | ||
|
||
<!-- | ||
TODO: what needs to be done to docs? | ||
--> | ||
|
||
## Subsequent work | ||
|
||
- [ ] Monitor Jira for issues in the stage 1 epic. | ||
- [ ] Confirm early adopters are visible in JVM usage statistics in the next few months. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
name: "🎉 Recommend a new Java version checklist" | ||
labels: java-lifecycle-checklist | ||
about: Track work required to recommend a new Java version | ||
--- | ||
|
||
# Stage 2: Recommend a new Java version | ||
|
||
More information is available in the [Java lifecycle guide](https://github.com/jenkins-infra/release/blob/master/docs/releases.md). | ||
|
||
## Stage Lead | ||
|
||
<!-- | ||
The stage lead is expected to perform or delegate the work. | ||
--> | ||
|
||
@<github-username of stage lead> | ||
|
||
## Preparatory work | ||
|
||
- [ ] Ensure all outstanding Jira issues from stage 1 have been addressed. | ||
- [ ] Confirm adoption has been increasing steadily in JVM usage statistics. | ||
|
||
## Primary work | ||
|
||
<!-- | ||
TODO: link to example PRs | ||
TODO: provide more details about each step | ||
--> | ||
|
||
- [ ] Fix any Jira issues in stage 2. | ||
- [ ] Update the default Docker image to use the new version of Java. | ||
- [ ] Update the Windows installer to use the new version of Java by default. | ||
|
||
## Subsequent work | ||
|
||
- [ ] Monitor Jira for issues in the stage 2 epic. | ||
- [ ] Confirm a spike is visible in JVM usage statistics in the next few months. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
--- | ||
name: "🚨 Require a new Java version checklist" | ||
labels: java-lifecycle-checklist | ||
about: Track work required to require a new Java version | ||
--- | ||
|
||
# Stage 3: Require a new Java version | ||
|
||
More information is available in the [Java lifecycle guide](https://github.com/jenkins-infra/release/blob/master/docs/releases.md). | ||
|
||
## Stage Lead | ||
|
||
<!-- | ||
The stage lead is expected to perform or delegate the work. | ||
--> | ||
|
||
@<github-username of stage lead> | ||
|
||
## Preparatory work | ||
|
||
- [ ] Ensure all outstanding Jira issues from stage 2 have been addressed. | ||
- [ ] Confirm adoption has been increasing steadily in JVM usage statistics. | ||
|
||
## Primary work | ||
|
||
<!-- | ||
TODO: link to example PRs | ||
TODO: provide more details about each step | ||
--> | ||
|
||
- [ ] Fix any Jira issues in stage 3. | ||
- [ ] Update the parent POM and plugin POM to require the new version, thereby introducing a flag day. | ||
<!-- | ||
TODO: Or instead allow the same parent POM to continue to be used with older Java versions, | ||
provided the consumers customize the maven.compiler.release and maven.compiler.testRelease to the | ||
older Java version? This could be more flexible, but also more confusing, depending on one's | ||
perspective. This ought to be discussed. | ||
--> | ||
- [ ] Remove the Docker images of the old version. | ||
- [ ] Update Jenkins core. | ||
<!-- | ||
TODO: what needs to be done to Jenkins core and core components? | ||
TODO: what needs to be done to the Windows installer? | ||
TODO: what needs to be done to docs? | ||
TODO: what needs to be done to PCT? | ||
TODO: what needs to be done to ATH? | ||
TODO: what else needs to be done? | ||
--> | ||
|
||
## Subsequent work | ||
|
||
- [ ] Monitor Jira for issues in the stage 3 epic. | ||
- [ ] Confirm a decrease is visible in JVM usage statistics in the next few months. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Java lifecycle | ||
|
||
This document describes the implementation of the Java lifecycle described in JEP-400. | ||
|
||
## Overview | ||
|
||
The Java lifecycle consists of three stages: | ||
|
||
<dl> | ||
<dt>Add support for a new Java version</dt> | ||
<dd>The first stage enables early adopters to begin using the new Java version.</dd> | ||
<dt>Recommend a new Java version</dt> | ||
<dd>The second stage accelerates adoption of the new Java version.</dd> | ||
<dt>Require a new Java version</dt> | ||
<dd>The third stage forces users to complete the migration.</dd> | ||
</dl> | ||
|
||
## Procedure | ||
|
||
### Choosing dates | ||
|
||
During the implementation of the first stage, the date of the third stage must be decided. | ||
The administrative monitor warns users 12 months before the date of the third stage, implying the date for the second stage as well. | ||
In other words, the implementation of the first stage also defines the dates for the second and third stages. | ||
The date of the third stage for a given Java LTS release is typically two years after the date of the third stage for the previous Java LTS release, | ||
and it must be before the date the Eclipse Temurin project drops support for the given Java version. | ||
|
||
### Checklists | ||
|
||
The implementation of these tasks is managed through three checklists, one for each stage. | ||
At the beginning of the first stage, create three GitHub issues, one for each stage. | ||
As each stage is completed, the corresponding issue can be closed. | ||
Each issue need not be assigned to the same person, | ||
though it may be desirable to do so for purposes of continuity. | ||
|
||
- [Add support for a new Java version](https://github.com/jenkins-infra/release/blob/master/.github/ISSUE_TEMPLATE/3-add-support-for-a-new-java-version.md) | ||
- [Recommend a new Java version](https://github.com/jenkins-infra/release/blob/master/.github/ISSUE_TEMPLATE/4-recommend-a-new-java-version.md) | ||
- [Require a new Java version](https://github.com/jenkins-infra/release/blob/master/.github/ISSUE_TEMPLATE/5-require-a-new-java-version.md) |