Hi all, I was hoping to update Error Prone to version 2.38.0 so we can turn on the ThreadSafe checker (https://errorprone.info/bugpattern/ThreadSafe), but it looks like that checker might not work just yet ( https://github.com/google/error-prone/issues/4833).
While preparing for that change I found out that recent versions of Error Prone minimally require JDK 17 for compilation. It occurred to me that Beam's toolchain management could be improved with Gradle's builtin toolchain management ( https://docs.gradle.org/current/userguide/toolchains.html). Gradle's toolchain management combined with toolchain auto-discovery make it a bit easier to run builds without having to explicitly override JAVA_HOME, org.gradle.java.home or any of the Beam properties for selecting runtimes (java8Home, java11Home, testJavaVersion). A brief overview of some of the changes: - Replace java{VERSION}Home properties with org.gradle.java.installations.paths=/path/to/java8,/path/to/java11,... and enable/disable toolchain auto-discovery with org.gradle.java.installations.auto-detect. - Reconfigure (Java) compile tasks to use options.release instead of options.sourceCompatibility and options.targetCompatibility to keep producing JVM 8 compatible binaries. - Reconfigure release specific test tasks to use test.javaLauncher for JVM selection. Any thoughts on this? Cheers, Steve