Hi, BookKeepers, I want to propose and clarify a new CI strategy based on
our former practices.

## Current CI Jobs

- **PR Validation Tests**: Currently, these jobs run on JDK 11 for every
pull request to ensure all changes meet our quality standards before
merging.
- **Platform Build Tests**: We run Windows and macOS builds on JDK 11.
- **Tests**: Major tests are currently only run on JDK 11 due to time
constraints(I think, please point out if I were wrong).
- **Compatibility Checks**: We perform basic compatibility checks across a
JDK matrix of 8, 11, 17, and 21, with JDK 21 added recently as per [this
pull request](https://github.com/apache/bookkeeper/pull/4350).
- **OWASP Check**: Run as part of our daily builds or pom file changes to
ensure security vulnerabilities are identified and addressed swiftly.
- **Daily Builds**: These are three types of job in daily builds: higher
jdk linux, owasp, windows jdk(current running in jdk21, limited to some
development jobs, there are still many tests failures to be solved), due to
its speed and the ability to expose issues.
- **GitHub CodeQL, TYPOS**: These jobs are not related to JVM.

## Proposed JVM Strategy

Given that JDK 11 will reach its end of life in October 2024 [1], I suggest
transitioning our main CI operations to **JDK 17**. This would include the
`PR Validation Tests`, `Platform Build Tests`, and `Tests`.

For `Compatibility Checks`, we should consider maintaining checks only for
OpenJDK LTS versions that are not EOL. For instance, we can remove JDK 11
from the compatibility matrix after October 2024.

For `Daily Builds` on Linux, I propose adding OpenJDK LTS versions beyond
our main CI version.

For `Daily Builds` on Windows and the `OWASP Check`, using the latest
OpenJDK version will leverage the most advanced and supported JDK features
and help expose more problems.

Thank you for considering this strategic update. I look forward to your
feedback and further discussion.

[1] [JDK 11 End of Life Update](https://access.redhat.com/articles/1299013)

Thanks
ZhangJian He
Twitter: shoothzj
Wechat: shoothzj

Reply via email to