Skip to content

build: Build with Java 25 toolchain - #2448

Merged
maxandersen merged 4 commits into
mainfrom
build-java25
May 8, 2026
Merged

build: Build with Java 25 toolchain#2448
maxandersen merged 4 commits into
mainfrom
build-java25

Conversation

@maxandersen

@maxandersen maxandersen commented Apr 19, 2026

Copy link
Copy Markdown
Collaborator

This is with intent of having faster builds an potentially use markdown in javadoc; but also to allow use of newer gradle plugins to handle git versioning that does not break with git worktrees.

Summary

Update the build toolchain from Java 11 to Java 25 while keeping the same bytecode targets (--release 8 for main code, --release 9 for multi-release, --release 11 for tests).

Changes

  • build.gradle — Toolchain languageVersion 11 → 25
  • .github/actions/shared-build-setup/action.yml — Default java-version 11 → 25 (avoids Gradle auto-provisioning overhead)
  • .github/workflows/step-ci-build.yml — Unit test job now uses matrix.java-version (currently [11]) with -PtestJavaVersion, matching the integration test pattern

Notes

  • --release 8 still works on JDK 25 but emits a deprecation warning ("source value 8 is obsolete and will be removed in a future release")
  • Test execution versions are unchanged: unit tests run on JDK 11, integration tests on 8/11/17/21/25
  • The unit test matrix can easily be expanded to more Java versions in the future

@maxandersen maxandersen changed the title Build with Java 25 toolchain build: Build with Java 25 toolchain Apr 19, 2026
@maxandersen
maxandersen marked this pull request as ready for review May 8, 2026 13:37
@maxandersen

Copy link
Copy Markdown
Collaborator Author

@quintesse please take a look to see if i've missed something here and if you see any problems with this one.

@quintesse quintesse left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I'd even say that we could make the version used for tests much newer. I mean if we build with 25 anyway, why not test with 25 as well? Is there a reason we shouldn't do that?

@maxandersen

Copy link
Copy Markdown
Collaborator Author

We can definitely add 25 in matrix if missing.

We test on 11 at runtime to ensure it doesn't accidentally rely on multijars different behaviours.

For integration tests we can run test with 25 and just run with different external vm.

@maxandersen
maxandersen merged commit 9927a54 into main May 8, 2026
28 checks passed
@maxandersen
maxandersen deleted the build-java25 branch May 8, 2026 21:53
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.

2 participants