Skip to content

Keep renovate on Adoptium mainline java builds - #76

Merged
dfalling merged 1 commit into
mainfrom
upgrade-java-pr
Aug 20, 2026
Merged

Keep renovate on Adoptium mainline java builds#76
dfalling merged 1 commit into
mainfrom
upgrade-java-pr

Conversation

@dfalling

Copy link
Copy Markdown
Owner

Summary

Adds a renovate packageRule restricting the java dependency to Adoptium mainline builds, fixing the permanently-red renovate PR #75.

The failure: #75 proposed java 25.0.4+101.0.LTS. Both CI jobs died nine seconds in, inside mise install:

mise ERROR Failed to install core:java@temurin-25.0.4+101.0.LTS:
          no metadata found for version temurin-25.0.4+101.0.LTS

The cause: 25.0.4+101.0.LTS is Adoptium's interim respin jdk-25.0.4.1+1. Adoptium builds respins only for the platforms that needed the fix — this one shipped alpine-linux/x64 and mac/x64 and nothing else, versus eleven platforms for mainline 25.0.4+7. mise resolves java per platform, so on linux/x64 there is no metadata at all and the install hard-fails before any build step. It would also break every dev machine that isn't a mac x64.

The fix: Adoptium's semver encodes a respin as patch * 100 + build, so 25.0.4.1+1 becomes +101 while mainline builds stay under +100 (25.0.4+7, 25.0.0+36). allowedVersions: "!/\\+\\d{3,}\\./" blocks respins and still passes mainline updates like 25.0.5 and 26.

Once this lands, renovate should see #75's update as disallowed and close that PR and its branch on the next run.

Tradeoff: if Adoptium ever ships a security respin with full platform coverage, this skips it too. The next mainline release supersedes it within weeks, and the rule's description says to drop it if Adoptium's respin coverage changes.

Testing

  • bunx tsc --noEmit, bun run lint, bun run test -- --ci all pass
  • renovate-config-validator accepts the config both as an argument and as auto-discovered repo config
  • Regex checked against real and hypothetical versions: 25.0.4+7.0.LTS, 25.0.5+9.0.LTS, 26.0.0+36.0.LTS allowed; 25.0.4+101.0.LTS, 25.0.4+201.0.LTS blocked

Renovate offered java 25.0.4+101.0.LTS, which is Adoptium's interim
respin jdk-25.0.4.1+1. Adoptium builds respins only for the platforms
that needed the fix, and this one shipped alpine-linux/x64 and mac/x64
only — no linux/x64 binary exists. mise resolves java per platform, so
on linux/x64 there is no metadata at all and `mise install` hard-fails
before any build step, which killed both CI jobs nine seconds in and
would break every dev machine that isn't a mac x64.

Adoptium's semver encodes a respin as `patch * 100 + build`, so
25.0.4.1+1 becomes +101 while mainline builds stay under +100. Excluding
+1xx and up blocks respins and still lets 25.0.5, 26 and friends through.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dfalling
dfalling enabled auto-merge (squash) August 20, 2026 09:20
@dfalling
dfalling merged commit b22ea8e into main Aug 20, 2026
2 checks passed
@dfalling
dfalling deleted the upgrade-java-pr branch August 20, 2026 09:25
dfalling added a commit that referenced this pull request Aug 21, 2026
)

The rule added in #76 to keep java off Adoptium's respins never fired:
the mise manager reports this dep as depName `java` but packageName
`java-jdk`, and matchPackageNames tests the packageName, so the rule was
inert and Renovate kept offering 25.0.4+101.0.LTS (PR #75, which fails
`mise install` on linux/x64 nine seconds into both CI jobs). Matching on
matchDepNames is what binds the rule to the dep.

With the rule live, the respin is filtered and the next candidate is the
non-LTS major 26.0.2+10 — not something the Android build JDK should
drift onto. A single allowedVersions regex covers both cases by admitting
only mainline LTS builds: three-part version, 1-2 digit build (respins
encode as `patch * 100 + build`, landing at +1xx), `.0.LTS` suffix.

Verified against the live Adoptium version list with
`RENOVATE_PLATFORM=local renovate`: at the current pin no update is
offered, and from an older pin (25.0.1+8.0.LTS) the mainline
25.0.4+7.0.LTS patch still comes through.

Co-authored-by: Claude Opus 5 (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