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

Reply via email to