Skip to content

Conversation

gounthar
Copy link
Contributor

@gounthar gounthar commented Sep 18, 2025

Summary

  • Add comprehensive JDK 25 (early access) support across all image variants
  • Standardize compression arguments and module path configuration

Changes Made

JDK 25 Support

  • New build targets: Added JDK 25 variants for Alpine, Debian (bookworm), Debian Slim, and RHEL UBI9
  • Build configuration: Updated docker-bake.hcl with JDK 25 targets across all supported platforms
  • Java version: Set default JDK 25 version to 25+9-ea-beta
  • Module optimization: Implemented selective module inclusion for JDK 25 using configurable JLINK_MODULES_DEFAULT

Build System Improvements

  • Standardized arguments: Updated jlink argument handling to use "$@" for proper parameter expansion
  • Platform support: JDK 25 images available on amd64, arm64, s390x, and ppc64le where applicable
  • Compression consistency: Applied zip-6 compression for both JDK 21 and JDK 25

Platform Support

Variant JDK 17 JDK 21 JDK 25
Alpine ✅ amd64 only ✅ amd64, arm64 ✅ amd64, arm64
Debian ✅ all platforms ✅ all platforms ✅ all platforms
Debian Slim ✅ amd64 only ✅ amd64, arm64 ✅ all platforms
RHEL UBI9 ✅ amd64, arm64, ppc64le ✅ amd64, arm64, ppc64le ✅ amd64, arm64, ppc64le

Testing done

make build

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests that demonstrate the feature works or the issue is fixed

@gounthar gounthar requested a review from a team as a code owner September 18, 2025 16:24
"21."*) set -- "--compress=zip-6" ;; \
"21."*) set -- "--compress=zip-6" "--add-modules" "ALL-MODULE-PATH" ;; \
# the compression argument is different for JDK25 (early access)
"25"*) mod_list="${JLINK_MODULES:-$JLINK_MODULES_DEFAULT}"; \
Copy link
Member

Choose a reason for hiding this comment

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

Question: what's the purpose of having two variables for jlink modules?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The goal was to have JLINK_MODULES configurable via the command line if needed, but it may be unneeded complexity. 🤔

@lemeurherve lemeurherve self-assigned this Oct 3, 2025
@lemeurherve
Copy link
Member

lemeurherve commented Oct 5, 2025

On 22 tests, 9 failures: https://ci.jenkins.io/job/Packaging/job/docker/job/PR-2072/13/testReport/

I suggest using make test-debian_jdk25 for example to test on your side 😉

@gounthar
Copy link
Contributor Author

gounthar commented Oct 5, 2025

Strange, all was working fine on my end when I last committed... 🤔

@lemeurherve
Copy link
Member

lemeurherve commented Oct 5, 2025

Strange, all was working fine on my end when I last committed... 🤔

Cf your current "testing done", I don't doubt make build passed, but did you tried make test?

If not, can you try it now please?

@lemeurherve
Copy link
Member

lemeurherve commented Oct 5, 2025

I found out Jenkins controller isn't compatible with Java 25 yet cf jenkins-infra/jenkins.io#8458 (comment)

As this might take some time, maybe close this PR meanwhile and restart a fresh one when compatible?

@gounthar
Copy link
Contributor Author

gounthar commented Oct 5, 2025

I had make build work on my machine, but I guess I also had the locally built controller images with JDK25 too. 🤔
If that's not the case, then I don't know what happened. Frankly, make build is the very least I can do before creating a PR. 🤷

@lemeurherve
Copy link
Member

lemeurherve commented Oct 5, 2025

I had make build work on my machine, but I guess I also had the locally built controller images with JDK25 too. 🤔

Getting the docker image to build is one thing, getting it to work and passes tests is what matters 😉

Have you tried make test?

EDIT:

If that's not the case, then I don't know what happened. Frankly, make build is the very least I can do before creating a PR. 🤷

You can (I'd even say "have to") run tests locally before submitting a pull request for review.

@gounthar gounthar closed this Oct 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants