Skip to content

fix(devcontainer): bump Java feature to 1.8.3 to fix SDKMAN version lookup - #2892

Merged
neilv-g merged 1 commit into
mainfrom
fix/devcontainer-java-feature-1.8.3
Oct 19, 2026
Merged

neilv-g merged 1 commit into
mainfrom
fix/devcontainer-java-feature-1.8.3

Conversation

@neilv-g

@neilv-g neilv-g commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

What

Bumps the pinned ghcr.io/devcontainers/features/java:1 entry in .devcontainer/devcontainer-lock.json from 1.8.0 to 1.8.3, which is what the floating java:1 tag currently resolves to. No other features change, and devcontainer.json is unchanged.

Why

The CI build job currently fails for every PR while building the devcontainer (e.g. #2891):

JDK_DISTRO: tem
Version 25 not found. Available versions:

ERROR: Feature "Java (via SDKMAN!)" (ghcr.io/devcontainers/features/java) failed to install!

How

Updated version, resolved, and integrity for the java entry to the 1.8.3 manifest digest (sha256:61a83921…), verified against GHCR as the digest for both java:1.8.3 and java:1.

Testing

Ran each pinned version's install.sh (VERSION=25, JDKDISTRO=tem) in mcr.microsoft.com/devcontainers/base:trixie, the base image of .devcontainer/Dockerfile:

Feature version Result
1.8.0 (old pin) Version 25 not found. Available versions: (exit 1), same as CI
1.8.3 (new pin) Installing: java 25.0.4.1+1-tem … Done! (exit 0)

The build job on this PR is the end-to-end check, since it installs devcontainer features from scratch.

Corrected Assumptions / Learnings

  • devcontainer-lock.json takes precedence over floating feature tags: CI installed java 1.8.0 (the locked digest) even though java:1 resolves to 1.8.3.
  • The lockfile pins a feature's install script, not what the script installs. With "version": "25", the script still queries SDKMAN at build time, so upstream data changes can break a pinned build, and the pin keeps upstream fixes out until someone bumps it.
  • Nothing bumps this lockfile automatically today: Dependabot's devcontainers ecosystem has never opened a devcontainer-feature PR in this repo, and the lockfile hadn't changed since chore(deps): bump toolchain and dependencies and resolve linter and security breakages #2606. Follow-up: check the Dependabot devcontainers job logs, or decide whether to keep the lockfile.
  • The build job's cacheFrom image (webstatus-dev-devcontainer-ci-precommit) isn't published by any workflow, so that job always installs features from scratch. The playwright job only passed because its Java layer was cached from the Oct 13 weekly base image, which masked the failure.

…ookup

The devcontainer lockfile pinned ghcr.io/devcontainers/features/java to 1.8.0. That version resolves "version": "25" by regex-matching SDKMAN's live candidate list, and its regex cannot parse build metadata (+N). On 2026-10-14, SDKMAN's only Temurin 25 identifier changed from 25.0.4-tem to 25.0.4.1+1-tem, so the feature fails with "Version 25 not found" and every CI build job that installs the feature from scratch fails while building the devcontainer.

Upstream fixed the version matching in 1.8.2 (devcontainers/features#1714). Bump only the java entry to 1.8.3 (the current java:1 tag), leaving all other pinned features unchanged.
@neilv-g
neilv-g requested a review from jrobbins October 19, 2026 15:39
@neilv-g
neilv-g added this pull request to stack #2908 October 19, 2026 15:39
@neilv-g
neilv-g added this pull request to the merge queue Oct 19, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Oct 19, 2026
@neilv-g
neilv-g added this pull request to the merge queue Oct 19, 2026
Merged via the queue into main with commit 1a33d52 Oct 19, 2026
20 checks passed
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