build(java): align toolchain and runtime to Java 25 (bytecode 17)#83
Open
cristianrcv wants to merge 6 commits into
Open
build(java): align toolchain and runtime to Java 25 (bytecode 17)#83cristianrcv wants to merge 6 commits into
cristianrcv wants to merge 6 commits into
Conversation
Adopt Java 25 as the build toolchain and runtime (Gradle toolchain and CI workflows) while keeping the language level and bytecode target at Java 17. Follows the proposed org-wide standard in the Java 25 ADR (seqeralabs/adr#48), which supersedes the 2024-12-03 Java 17/21 ADR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
Switch the CI setup-java JDK distribution from Temurin to Amazon Corretto, following the Java 25 ADR (seqeralabs/adr#48), which specifies Amazon Corretto as the preferred distribution for Linux. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
This job runs Gradle, which uses the pinned Java 25 toolchain; install JDK 25 in setup-java so it matches the toolchain instead of forcing an auto-provisioned download. Aligns with the Java 25 ADR (seqeralabs/adr#48). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
Gradle 8.x cannot run on Java 25 (buildSrc fails with "Unsupported class file major version 69"); Gradle 9.1+ is required. Prerequisite for the Java 25 toolchain in seqeralabs/adr#48. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
The previous Groovy versions cannot process Java 25 class files (main and test compileGroovy fail with "Unsupported class file major version 69") on the Java 25 toolchain. Bump all Groovy artifacts to 4.0.31, which supports JDK 25, matching the nextflow project. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
Gradle 9 no longer places the JUnit Platform launcher on the test runtime
classpath, so modules using the java-library and java-test-fixtures
conventions fail to start Spock/JUnit ("Failed to load JUnit Platform").
Add junit-platform-launcher as testRuntimeOnly in both shared conventions
so every module gets it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Cristian Ramon-Cortes <cristian.ramon-cortes@seqera.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Aligns this repository with the proposed org-wide Java 25 standard (implements https://github.com/seqeralabs/adr/pull/48). Java 25 is adopted as the build toolchain and runtime, while the language level and bytecode target remain at Java 17.
What changed
buildSrcconvention plugins — bumped the Gradle Java toolchain fromJavaLanguageVersion.of(21)toof(25)in all three convention files:io.seqera.java-library-conventions.gradleio.seqera.java-test-fixtures-conventions.gradleio.seqera.groovy-common-conventions.gradle.github/workflows/build.yml— CI build matrixjava_version: [21]->[25].sourceCompatibility/targetCompatibilityleft at17in all convention files (bytecode target unchanged)..github/workflows/generate-submit-dependencies.ymlleft atjava-version: 17(dependency-submission job, unchanged).Why
Follows the proposed org-wide standard in the Java 25 ADR (seqeralabs/adr#48), which supersedes the 2024-12-03 Java 17/21 ADR. Building and running on the latest LTS while keeping the bytecode target at Java 17 preserves runtime compatibility for consumers.
How to verify
./gradlew checkand./gradlew assemblebuild with a Java 25 toolchain.javap -vreports major version 61 /class file version 61.0).build.ymlruns on Java 25.🤖 Generated with Claude Code