-
-
Notifications
You must be signed in to change notification settings - Fork 10
Description
This Temurin release checklist based on the release doc captures what activities must happen during a release.
The target release date is: 16th of September 2025 (as per the upstream wiki)
The release champion (RC) for this release is: @adamfarley
The compliance release lead (CRL) for this release is: @d3r3kk
Planned absences during the release cycle:
- @adamfarley September 26th only
The role of the release champion is to ensure that all release activities listed in this checklist get completed (by delegation to the broader team or by the release champion themselves). The final task of the release champion during a release is to confirm that all items in the checklist were completed satisfactorily and the release can be declared complete.
Everyone participating in a release, including the release champion are requested to provide feedback into the release retrospective so that the release process can be continuously improved (through simplification and/or automation).
Two Weeks Prior To Release
- Release Champion named whose responsibility is to ensure every item in this checklist gets completed
- Compliance Release Lead named (@d3r3kk) whose responsibility is to ensure Temurin Compliance items marked with TC get completed
- Release Checklist Created Create this issue to track the release and the preparation tasks.
- Identify Expected Release Versions - Find out the version numbers from here
- Notify release branching of build repositories : Slack message, branching build repositories
- Create build repositories release Branches : Create build repository release branches
- Identify the aqa branch name for the upcoming release (Note, April and October PSU updates generally use same branch as the March/September new releases - v1.0.9-release
- Check that the temurin updater action has not been suspended. If it has, re-enable it or set a reminder to run manually when ready.
1-1½ weeks prior to release
1½ weeks would typically mean running on the Friday so the dry-run(and potential "candidate" build) results are available on the Monday before release week.
CRL to ensure these TC steps are done (please complete steps in order, and ensure jobs have finished before proceeding to next step):
- 🔁 TC: Ensure ALL nodes are online. Nodes list.
- 🔁 In progress: One node is failing. Being tracked at https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/6586 (Antonio)
-
⚠️ TC: Run ProcessCheckMultiNode to remove old test processes.⚠️ https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/- Failed nodes, each being re-run:
⚠️ https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/165/- 🔁 Raised ticket https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/6596.
⚠️ https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/166/- 🔁 Raised ticket https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/6597
- ✅ https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/167/
- Failed nodes, each being re-run:
- TC: Run DeleteJCKMultiNode to remove now-redundent jck versions.
- ✅ Running to delete JCK 24 materials: https://ci.eclipse.org/temurin-compliance/job/DeleteJCKMultiNode/152/
- NOTE: End of pipeline results in an error, although all nodes report success. Error is
java.io.StreamCorruptedException: invalid stream header: 382E3535 ... Remote call to jck-skytap-aix72-ppc64-5.
- NOTE: End of pipeline results in an error, although all nodes report success. Error is
- ✅ Running to delete JCK 24 materials: https://ci.eclipse.org/temurin-compliance/job/DeleteJCKMultiNode/152/
- TC: Run DeleteNonJenkinsTestFiles to remove any old test workspaces. Report any ERROR: to users for folder deletion.
- ✅ https://ci.eclipse.org/temurin-compliance/job/DeleteNonJenkinsTestFiles/55/ (NOTE: only my files needed manual clearing)
- TC: Run Gather_Host_Info to check all nodes have sufficient disk space and iNodes. Browse console report for any node short on space or inodes, and resolve..
Machines with > 75% use:
| Machine | Disk Use | INode Use |
|---|---|---|
| win11-x64-4cpu-f5z0vu | 83% | N/A |
| tck-osuosl-ubuntu2404-aarch64-1 | 50% | 88% |
| tck-osuosl-ubuntu2404-aarch64-2 | 51% | 88% |
| win11-x64-4cpu-orhw2m | 77% | N/A |
- 🔁 TC: Run Setup_JCK_Run_Multinode to update jck_run folders and jtx exclude files.
- In progress.
- TC: Run DeleteWorkspaces to clean up any lingering jenkins job materials.
- FAILED.
stderr: fatal: couldn't find remote ref refs/heads/make_workspace_eraser_handle_grinders- didn't even make it to an agent.- SORTED: was trying to run on a feature branch that is now merged to
master. - 🔁 https://ci.eclipse.org/temurin-compliance/job/DeleteWorkspaces/18/
- Still have some workspaces not cleaned up, help desk ticket is in place.
- SORTED: was trying to run on a feature branch that is now merged to
- FAILED.
- Check the nagios server to ensure there are no critical infrastructure issues
Log in to the public nagios server, and check the Problems / Services page. If you do not have access, please request it via an issue in the infrastructure repository. If there are any issues, then please log an issue in the infrastructure repository. - Regenerate The Release Build Pipeline Jobs In Jenkins Link.
- Update testenv.properties in the AQA release branch to use the -dryrun-ga branches (Sample PR)
- Prepare & Perform Dry Run/Candidate Build & Tests : Dry-run
- Note: "#auto-way---before-release-week-dry-run-release-test" is not a valid link (above). This needs to be fixed.
- Triage dry-run/candidate TCK job results - Build triage Test triage
- Restore aqa-tests release branch testenv.properties JDK_BRANCH values to the "-ga" tag after dry-run/candidate has completed - PR
- (Optional based on perceived risk with any machine updates) Perform TCK Auto-manuals on one platform
Thursday or Friday prior to release
- Final Code Freeze Warning post a message to the build & release slack channels : Slack message
After 1 day, then :-
-
Declare code freeze to ensure stability of build systems and infrastructure during release process : #build and #release slack message: "Code Freeze is now being enabled"
-
Enable code freeze bot : Enabling code freeze - PR
-
Prepare For Release
- Ensure that there is an aqa-tests branch that matches the name of the latest aqa-tests release version.
- Update releaseVersions with release versions.
- Update releasePlan.cfg with expected tags, for more detail see here. - PR ready
- Generate release pipeline jobs with release-pipeline-generator. - Running
- DO NOT use default job parameter values. aqaReference should be the latest aqa-tests release version.
Wait For All Of The Above To Complete Successfully Before Proceeding!
- Log a helpdesk ticket with EF, to get all test materials updated and prepare for any manual activities
- TC: Run the ProcessCheckMultiNode process cleaning job on all ci.role.test nodes, to ensure healthy state, verify all nodes successful: https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/build?delay=0sec
- Completed prior to release week.
- TC: Run the Setup_JCK_Run_Multinode job with CLEAN_DIR=true (to purge any old release contents/results) on all ci.role.test nodes, this will extract the jck_run folder with all the temurin.jtx exclude files, verify all nodes successful : https://ci.eclipse.org/temurin-compliance/job/Setup_JCK_Run_Multinode/build?delay=0sec
- Completed with errors, help desk tickets are in place.
- Check the nagios server to ensure there are no critical infrastructure issues
Release Week Checklist:
- Check All Nodes Online https://ci.eclipse.org/temurin-compliance/label/ci.role.test/
- Run https://ci.eclipse.org/temurin-compliance/job/ProcessCheckMultiNode/ -- with defaults
- Run Setup_JCK_Run_Multinode with CLEAN_DIR=true for ( ci.role.test )
- Disable Setup_JCK_Run_Multinode To Ensure Test Evidence Is Not Lost
- As detailed earlier, again check the nagios server to ensure there are no critical infrastructure issues
- Create the Github Issues for tracking progress in the adoptium/temurin repo - Done. Issue link.
- Create the Github issues for the Adoptium public retro in the adoptium/temurin repo - Done. Issue Link.
- Create the retrospective issue for the Temurin Compliance project
- Update the links on the slack channel for the release status and retrospective issues.
Remove x32Windows from release-openjdk{8,11,17}-pipelineNo 32bit Windows build for JDK25.- Check for any last minute cacerts updates and cherry-pick to temurin-build release branch if needed
Release Day Onwards
-
Check Tags have been released upstream - Look for mailing list announcements and
-gatags in version control. -
Check Tags have been Mirrored Mirrors.
-
Check "auto-trigger" pipelines or Launch build pipelines for each version being released. Verify if the release pipeline "auto-triggered", if not (maybe expected tag was wrong), then manually launch (as per release doc) once release tags are available via launch page in Jenkins. Provide links in this issue to each version's pipeline build(s). There may be multiple pipelines per version if primary and secondary platforms are separated to expedite the release. In some cases, where there are unforeseen configuration or infrastructure issues, reruns may be needed.
- LTS jdk25 pipeline(s): https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/5
- Aix: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/9/
- aLinux: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/7/
- xMac: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/8/
- xWindows: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/11/
- aarch64 Windows: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/15/
- Other: https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/5
- LTS jdk25 pipeline(s): https://ci.adoptium.net/job/build-scripts/job/release-openjdk25-pipeline/5
-
Check Upstream Tags, Mirror Tags & Trigger Builds For JDK8 AARCH32 This specific version is built from a separate mirror repository and has a separate build process, this is CURRENTLY not part of the automation which is handled for the other platforms and version. Also note that there is a seperate properties file (testenv_arm32.properties) which needs to be updated.
-
Add links to the status doc to indicate per-platform builds ready
-
Add website banner - Done
-
TC: Remind TCK testers (via Slack comment) to update a TCK triage issue with ownership and machine IP before running any interactive/automanual tests.
- Note: maybe we should tag Release Champion tasks with RC, to clarify that the TC tasks (as well as many other tasks) are not (or not solely) the responsibility of the RC. Food for thought.
-
Summarise test results. Find each launched build pipeline in TRSS to view a summary of test results. Can use the Release Summary Report feature in TRSS to generate a summary of failures, history and possible issues in markup format to be added to this issue as a comment. - Done.
-
Triage each build and test failure in the release summary report (following the Triage guidelines) and determine blocking or non-blocking. Supply links to triage issues or docs for each version here.
- LTS jdk25 triage summary: Sept 2025 - JDK 25 triage aqa-tests#6555
-
Fix blocking failures if they exist and confirm others are non-blocking.
-
Confirm Temurin-compliance items completed, per platform/version/binaryType
-
Get PMC 'ready to publish' approval, once no blocking failures exist.
-
**Generate The Release Notes Per JDK Version **, ( Use https://ci.adoptium.net/job/build-scripts/job/release/job/create_release_notes/ ) and publish them with the release tool using
UPSTREAM_JOB_NAMEofcreate_release_notesand the appropriate JOB NUMBER -
**Verify that the release notes are live - may require a full update on the API we've had problems with this recently) and remediate if required.
- They are not live yet. Chasing this.
- Update 09/17: This page now has JDK25 on it as an STS, but it links to nothing. Will set this aside until 3pm BST tomorrow. If the website hasn't updated by then, I'll raise an issue and perhaps John Oliver can take a look.
- Note: Maybe that retrospective link should be replaced with this link.
-
Publish the release by re-running the dry-runs of the release tool job on Jenkins without the dry-run parameter
- Note: Some of these tasks are not singular tasks, so they should not have a singular tickbox.
- Instead, they should be grouped together into a single bullet-point list (no tickboxes), complete with a link to the status table for the release.
- We could also have a tickbox for "remind the community of these steps, plus pipeline/triage/publish links". To debate after release.
- Note: Some of these tasks are not singular tasks, so they should not have a singular tickbox.
-
Publish updates to the container images to dockerhub
-
Check that the homebrew casks for macos have been automtically updated
- Note: A link to the homebrew upload location would be useful.
- E.g. I expect the jdk25 builds will be here and referenced here once they are uploaded.
- Note: The cask may be here: https://formulae.brew.sh/cask/temurin.
- With the rest of the locations updating over several days.
-
Update support page (automate* github workflow to create a PR to update the versions and dates on the support table)
-
Update supported platforms tables if needed if they have changed in this release. Create a PR to Supported platforms. - PR ready.
-
Update release notes (automate* - github workflow to create update for release notes pages - example)
- Note: This can be removed
-
Check the linux installer publishing jobs have worked This will be triggered automatically by the release tool job, but its status should be checked
-
Publicise the release via Slack #release channel and Twitter (can be partially automated)
- Note: The release blog needs its own tickbox further up, as it's a prerequisite for the tweet. Use this sort of thing, plus any adoptium.net release notes comments.
- Blog PR here.
- Slack announcement here.
- Carmen will be posting a tweet once the blog is out. See here.
-
Declare code freeze end opening up the code for further development
-
Disable code freeze bot In order to enable the code freeze GitHub you need to change the line
if: github.repository_owner == 'adoptium' && trueto beif: github.repository_owner == 'adoptium' && falsein the code-freeze.yml GitHub workflow. Please contact the PMC if you need help merging this change. -
Remove website banner (automate* via github workflow in website repository) - PR here.
-
Check for presence of jdk8u aarch32 GA tag and mirror it Upstream Git repo - Mirror job
-
Do all of the above for the jdk8u/aarch32 build: Ensure to specify overridePublishName param
-
🔁 Archive/upload all TCK results
⚠️ Failing on osuosl-ubuntu-aarch64-2 (cannot pass that node, ends processing for all other nodes)- Re-run without the failing node is here
-
Archive/upload all AQA results Search for
Publish AQA test resultsin RELEASING.md for the process. -
TC: Use EclipseMirror job in the Temurin Compliance jenkins to store a backup of the release artifacts
-
Run download_and_sbom_validation job to verify the downloads, signatures and SBOM contents.
- @adamfarley doesn't have access to run this job. Requested here
- Update: Adam now has access. Running job here: https://ci.adoptium.net/job/build-scripts/job/release/job/download_and_sbom_validation/129/
- Note: Add job link when this list is updated.
-
Create an issue to capture notes for the next release blog in the adoptium.net repository and ensure to delegate the task of finalizing and publishing a PR for this release's blog post. (Use this link to get the vulnerability list).
-
Ensure the adoptium calendar is updated for the next cycle at a minimum
-
Declare the release complete and close this issue
Metadata
Metadata
Assignees
Labels
Type
Projects
Status