Thanks Vladimir for the details, I don't think requiring JDK 25 is a big deal and the benefits surpass the risks here, +1 on the change from me with the proposed timeline.
Best regards, Alessandro On Sun, Sep 27, 2026, 21:27 Vladimir Sitnikov <[email protected]> wrote: > 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 >
