Skip to content

build(java): align toolchain and runtime to Java 25 (bytecode 17)#99

Open
cristianrcv wants to merge 3 commits into
masterfrom
feat/NOTASK-align-java-25
Open

build(java): align toolchain and runtime to Java 25 (bytecode 17)#99
cristianrcv wants to merge 3 commits into
masterfrom
feat/NOTASK-align-java-25

Conversation

@cristianrcv

Copy link
Copy Markdown
Contributor

Summary

Aligns tower-agent with the org-wide Java 25 standard proposed in https://github.com/seqeralabs/adr/pull/48 (which supersedes the 2024-12-03 Java 17/21 ADR): adopt Java 25 as the build toolchain and runtime, while setting the language/bytecode target to Java 17.

What changed

  • build.gradle: Gradle toolchain JavaLanguageVersion.of(21) -> of(25).
  • build.gradle: compileJava options.release = 21 -> options.release = 17 (bytecode target lowered to 17).
  • .github/workflows/build.yml: java-version: '21' -> '25' (GraalVM setup + JReleaser setup, two places).
  • .github/workflows/security_submit_dependencies.yml: java-version: '21' -> '25' (GraalVM setup).

Why

The org-wide standard is to build and run on Java 25 while targeting Java 17 bytecode for broad runtime compatibility. This keeps the toolchain current while ensuring produced artifacts remain compatible with Java 17 consumers.

How to verify

  • CI (build.yml, security_submit_dependencies.yml) runs on Java 25.
  • ./gradlew build compiles with a Java 25 toolchain and emits Java 17 bytecode.
  • Confirm GraalVM Community and Adopt distributions provide Java 25 in the CI actions.

Reviewer notes

  • The bytecode target was lowered from 21 to 17 (options.release = 21 -> 17). This is intentional per the ADR. Please verify the codebase does not use any Java 18-21 language features or APIs — if it does, the CI compile will fail, which is the intended signal.
  • CI uses the graalvm-community distribution; ensure Java 25 is available for that distribution in graalvm/setup-graalvm.

🤖 Generated with Claude Code

cristianrcv and others added 2 commits July 8, 2026 14:57
Adopt Java 25 as the build toolchain and runtime while setting the
bytecode target to Java 17 (options.release 21 -> 17) to match the
org-wide standard, and bump CI to Java 25.

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>
@cristianrcv
cristianrcv requested a review from pditommaso July 8, 2026 13:50
Bump wrapper distribution from 9.3.1 to 9.6.1; Java source/target unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant