Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checklist for Temurin Release October 2024 #59

Open
50 of 77 tasks
gdams opened this issue Oct 11, 2024 · 2 comments
Open
50 of 77 tasks

Checklist for Temurin Release October 2024 #59

gdams opened this issue Oct 11, 2024 · 2 comments
Assignees

Comments

@gdams
Copy link
Member

gdams commented Oct 11, 2024

NOTE: Items marked jdkxx and TEMPLATE_UPDATEME should be replaced while deploying this issue template. It is recommended to delete this line once you've done so :-)

This Temurin release checklist based on the release doc captures what activities must happen during a release.

The target release date is: _________

The release champion for this release is: @gdams

Planned absences during the release cycle:

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
  • 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 - SL: October 2024 is the v1.0.4-release branch
  • **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 results are available on the Monday before release week.

Ensure ALL nodes online prior to running these following TC steps:

  • TC: Run the DeleteJCKMultiNode process cleaning job on all ci.role.test nodes, to remove any now redundent jck-versions, to ensure healthy state, verify all nodes successful: https://ci.eclipse.org/temurin-compliance/job/DeleteJCKMultiNode

  • 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

  • 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

  • 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

  • Update testenv.properties in the AQA release branch to use the -dryrun-ga branches (Sample PR)

  • Prepare & Perform Dry Run Of Build & Tests : Dry-run

  • Triage dry-run TCK job results

  • Restore aqa-tests release branch testenv.properties JDK_BRANCH values to the "-ga" tag after dry-run has completed

  • (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 :-

Wait For All Of The Above To Complete Successfully Before Proceeding!


Release Week Checklist:

Release Day Onwards

  • Check Tags have been released upstream - Look for mailing list announcements and -ga tags in version control.

  • Check the published GA tags are the "expected" tags entered in the aqa-tests release branch testenv.properties. If they are not then update.

  • Check Tags have been Mirrored Mirrors.

  • Check "auto-trigger" pipelines or Launch build pipelines for each version being released. Verify if the release pipline "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 jdk8 pipeline(s):
      • primary jdk8 pipeline:
        • rerun(s):
      • secondary jdk8 pipeline (inc. Win32):
        • reruns(s):
      • aarch32-jdk8u pipeline:
        • reruns(s):
    • LTS jdk11 pipeline(s):
      • primary jdk11 pipeline:
        • rerun(s):
      • secondary jdk11 pipeline (inc. Win32):
        • rerun(s):
    • LTS jdk17 pipeline(s):
      • primary jdk17 pipeline:
        • rerun(s):
      • secondary jdk17 pipeline (inc. Win32):
        • rerun(s):
    • LTS jdk21 pipeline(s):
      • primary jdk21 pipeline:
        • rerun(s):
      • secondary jdk21 pipeline:
        • rerun(s):
    • STS jdk23 pipeline(s):
      • primary jdk23 pipeline:
        • rerun(s):
      • secondary jdk23 pipeline:
        • rerun(s):
  • 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

    • Make a PR.
    • Check it was automatically published to the website.
    • Announce that we target releases to be available within 48-72 hours of the GA tags being available.
  • Remind TCK testers (via Slack comment) to update a TCK triage issue with ownership and machine IP before running any interactive/automanual tests.

  • Summarize 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.

  • 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 jdk8 triage summary:
    • LTS jdk11 triage summary:
    • LTS jdk17 triage summary:
    • LTS jdk21 triage summary:
    • STS jdk23 triage summary:
  • 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_NAME of create_release_notes and 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.

  • Publish the release (run the restricted access release tool job on Jenkins) ( also publish release notes )

  • Verify binaries published successfully to github releases repo and website (automate*, this could also be an automated test)

  • Publish updates to the containers to dockerhub

  • Edit the Homebrew Temurin Cask and replace the version and sha256 as appropriate. This means for Homebrew users that they install the latest by default and can use the @ notation to install older versions if they wish.

  • 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

  • Update release notes (automate* - github workflow to create update for release notes pages - example)

  • Trigger linux installers pipeline currently it is part of the build pipelines (will eventually be updated to run independently)

  • Publicize the release via Slack #release channel and Twitter (can be partially automated)

  • 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' && true to be if: github.repository_owner == 'adoptium' && false in 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)

  • 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

  • Archive/upload all AQA results Search for Publish AQA test results in RELEASING.md for the process.

  • Use EclipseMirror job in the Temurin Compliance jenkins to store a backup of the release artifacts

  • 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

@adamfarley
Copy link
Contributor

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

Done, except for one node. Relevant user notified for follow-up action.

@adamfarley
Copy link
Contributor

adamfarley commented Oct 15, 2024

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

Done, but many machines have directories that cannot be deleted. I've proposed long-term fix here.

For now, we should just make sure that all the machines have enough space to run the tests. Some may not, and I've detailed them here.

I'll be using that issue to figure out if any of them could be a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants