build: make Java 25 the default, demote Java 21 to the variant#35911
build: make Java 25 the default, demote Java 21 to the variant#35911sfreudenthaler wants to merge 1 commit into
Conversation
Switch the default Java for all builds and the published `latest` Docker image from Java 21 to Java 25 by updating the single source of truth in .sdkmanrc (25.0.2-ms). The primary release build then ships Java 25 with an empty suffix and naturally picks up the `latest`/`weekly` tags via the existing deployment-phase gate (docker_suffix == ''). No workflow tag logic changes required. dotcms/java-base:25.0.2-ms already exists on Docker Hub (the Java 25 variant has been building against it), so the base-image path is proven. Also bumps the java-base Dockerfile default ARG and fixes a stale "default Java 21" doc string in the manual-deploy workflow. NOTE: merging this must be paired with flipping the repo variables so the variant pathway builds Java 21 instead of Java 25: RELEASE_JAVA_VARIANT_VERSION: 25.0.2-ms -> 21.0.8-ms RELEASE_JAVA_VARIANT_SUFFIX: java-25 -> java-21 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
❌ Issue Linking RequiredThis PR could not be linked to an issue. All PRs must be linked to an issue for tracking purposes. How to fix this:Option 1: Add keyword to PR body (Recommended - auto-removes this comment)
Why is this required?Issue linking ensures proper tracking, documentation, and helps maintain project history. It connects your code changes to the problem they solve.--- This comment was automatically generated by the issue linking workflow |
|
Claude finished @sfreudenthaler's task in 1m 40s —— View job PR Review: build: make Java 25 the default, demote Java 21 to the variant
The diff itself is clean — 3 lines changed across 3 files, all consistent with the stated goal. Two issues worth flagging: 1. The example 2. CLAUDE.md and docs still reference Java 21 as the runtime/default Not in this PR's scope, but worth noting — 3. Atomicity risk (acknowledged in PR body but worth emphasizing) No logic bugs found in the workflow tag routing rationale. |
|
close this out in favour of #35914 |
|
duplicates #35914 |
What
Make Java 25 the default for all builds and for the published
dotcms/dotcms:latestimage, and demote Java 21 to the parallel variant (…_java-21).This is a single source-of-truth change:
.sdkmanrcjava=21.0.8-ms→java=25.0.2-msdocker/java-base/DockerfileARG SDKMAN_JAVA_VERSION→25.0.2-ms(cosmetic; callers always pass the arg)cicd_8-manual-deploy.ymlWhy this is all that's needed (no workflow tag-logic changes)
The
latesttag is gated incicd_comp_deployment-phase.ymloninputs.latest && docker_suffix == ''. The primary release build (cicd_6-release.yml) reads its Java version from.sdkmanrcand has an empty suffix, so once.sdkmanrcsays Java 25, the primary build ships Java 25 and automatically winslatest(and, viacicd_weekly-rolling-tags.yml,weekly). The Java 21 build moves to the variant pathway (cicd_7-release-java-variant.yml) and ships under…_java-21+ the floatingjava-21tag.dotcms/java-base:25.0.2-msalready exists on Docker Hub (the Java 25 variant has been building against it), so the base-image path (FROM dotcms/java-base:${SDKMAN_JAVA_VERSION}) is already proven.Repo variables are GitHub settings, so they can't live in the PR. At merge, flip them so the variant builds Java 21 instead of Java 25:
If
.sdkmanrcis merged but the vars are not flipped: the variant would also build Java 25 (duplicate oflatest), and no Java 21 image would be produced — breaking consumers still pinned to Java 21. They must change together.Resulting tags after merge + var flip
dotcms/dotcms:latest,:weekly,:{version}→ Java 25dotcms/dotcms:java-21,:{version}_java-21→ Java 21 (transition support)Rollout
latest= Java 21) for ~2–3 weeks.cicd_7-release-java-variant.ymltrigger / unset the variant repo vars (separate follow-up).🤖 Generated with Claude Code