Hi Alessandro, Thank you. Widely used libraries that still support Java 8 compile with a newer JDK and target Java 8: - Guava compiles with JDK 26 through Maven toolchains, targets Java 8, and by default runs its tests on the JDK that runs Maven. - JUnit 5 compiles with JDK 21 through a Gradle toolchain and --release 8. PR #5278 does the same with JDK 25. - pgjdbc has been built with JDK 17, and later JDK 21, with --release 8 since 42.7.1 (December 2023). Apache JMeter released 5.6.1 through 5.6.3 the same way. I set up both builds.
The current setup carries more risk. In CALCITE-6616, the 1.38.0 release candidate was compiled on JDK 21 and failed on Java < 21. With --release 8, the same mistake becomes a compile error. The change has one cost: building Calcite needs JDK 25 installed next to the JDK that runs Gradle. Gradle downloads JDK 25 automatically when it runs on Java 11 or later; on Java 8 it cannot, and the howto explains what to do then. CI keeps running the tests on JDK 8, 11, 17, 21, and 24, so code that breaks on an older JVM still fails CI. Release managers need JDK 25 as well, and the PR updates the release steps in the howto. The published jars still target Java 8, so downstream users upgrade as before. Stamatis tested PR #5278 locally and approved it. Unless someone objects, I will merge it on Thursday, October 1. Vladimir
