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

Warn users of old Java version 18 months before end of life #8543

Merged
merged 2 commits into from
Oct 2, 2023

Conversation

MarkEWaite
Copy link
Contributor

@MarkEWaite MarkEWaite commented Oct 2, 2023

Warn users of old Java version 18 months before end of life

Java releases a new LTS every two years. Jenkins supports the new LTS soon after its release. Allow a 6 month period after the release of a new LTS before warning the user that the previous Java release is approaching its end of life.

In the transition period from Java 11 to Java 17 and from Java 17 to Java 21, the 6 month period is not available because of the transition to the "2+2+2" support model for Java in Jenkins.

Dates and associated events:

  • Sep 2023 - Java 21 releases and Java 11 admin monitor EOL warning is shown
  • Jan 2024 - Java 11 admin monitor EOL danger is shown
  • Sep 2024 - Java 17 admin monitor EOL warning is shown, Java 11 is end of life for Jenkins
  • Jun 2025 - Java 17 admin monitor EOL danger is shown
  • Sep 2025 - Java 25 releases
  • Mar 2026 - Java 21 admin monitor EOL warning is shown, Java 17 is end of life for Jenkins
  • Jan 2027 - Java 21 admin monitor EOL danger is shown
  • Sep 2027 - Java 29 releases, Java 21 is end of life for Jenkins

Once we're through that transition period, then the pattern stabilizes as:

  • Sep 2027 - Java 29 releases, Java 21 is end of life for Jenkins
  • Mar 2028 - Java 25 admin monitor EOL warning is shown
  • Jan 2029 - Java 25 admin monitor EOL danger is shown
  • Sep 2029 - Java 33 releases, Java 25 is end of life for Jenkins

Testing done

Confirmed that the message in the admin monitor configuration at /manage/configure shows the expected text without null.

Checked the translations of the message in Portugese, simplified Chinese, and Russian using a round trip through Google translate. The English to target to English resulted in final English that was understandable to me. Improvements to the translated messages are certainly welcomed.

Adjusted the value of "now()" in a development build and confirmed that the warning color appears 18 months before end of life and the danger color appears 9 months before end of life.

Proposed changelog entries

Proposed upgrade guidelines

N/A

Submitter checklist

  • The Jira issue, if it exists, is well-described.
  • The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see examples). Fill in the Proposed upgrade guidelines section only if there are breaking changes or changes that may require extra steps from users during upgrade.
  • There is automated testing or an explanation as to why this change has no tests.
  • New public classes, fields, and methods are annotated with @Restricted or have @since TODO Javadocs, as appropriate.
  • New deprecations are annotated with @Deprecated(since = "TODO") or @Deprecated(forRemoval = true, since = "TODO"), if applicable.
  • New or substantially changed JavaScript is not defined inline and does not call eval to ease future introduction of Content Security Policy (CSP) directives (see documentation).
  • For dependency updates, there are links to external changelogs and, if possible, full differentials.
  • For new APIs and extension points, there is a link to at least one consumer.

Desired reviewers

@basil and @timja

I'd like to have this included in the weekly release delivered tomorrow (2.426). Asking for expedited review from @jenkinsci/core-pr-reviewers.

Before the changes are marked as ready-for-merge:

Maintainer checklist

  • There are at least two (2) approvals for the pull request and no outstanding requests for change.
  • Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
  • Changelog entries in the pull request title and/or Proposed changelog entries are accurate, human-readable, and in the imperative mood.
  • Proper changelog labels are set so that the changelog can be generated automatically.
  • If the change needs additional upgrade steps from users, the upgrade-guide-needed label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).
  • If it would make sense to backport the change to LTS, a Jira issue must exist, be a Bug or Improvement, and be labeled as lts-candidate to be considered (see query).

Accept that the message won't recommend a preferred Java version.
Allow a six month buffer between the release of a new Java version and
the first warning that the old Java version will no longer be supported.
@MarkEWaite MarkEWaite added the skip-changelog Should not be shown in the changelog label Oct 2, 2023
Copy link
Member

@basil basil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll merge this in a few hours so that it makes it in for tomorrow's weekly if there are no objections.

@MarkEWaite
Copy link
Contributor Author

Thanks very much @basil, @timja, and @NotMyFault !

@basil basil merged commit acd8196 into jenkinsci:master Oct 2, 2023
16 checks passed
@MarkEWaite MarkEWaite deleted the nine-month-warning-period branch October 2, 2023 19:12
flabrie pushed a commit to flabrie/jenkins that referenced this pull request Oct 2, 2023
* master:
  Bump org.jenkins-ci:jenkins from 1.105 to 1.106 (jenkinsci#8550)
  Bump asm.version from 9.5 to 9.6 (jenkinsci#8545)
  Fix encoding of Brazilian Portuguese localization (jenkinsci#8549)
  Warn users of old Java version 18 months before end of life (jenkinsci#8543)
  Bump org.jenkins-ci.plugins:credentials from 1271.v54b_1c2c6388a_ to 1290.v2e5b_13eb_b_127 (jenkinsci#8548)
  Bump com.puppycrawl.tools:checkstyle from 10.12.3 to 10.12.4 (jenkinsci#8547)
  Bump io.jenkins.plugins:plugin-util-api from 3.3.0 to 3.4.0 (jenkinsci#8538)
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip-changelog Should not be shown in the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants