Keep renovate on Adoptium mainline java builds - #76
Merged
Conversation
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
enabled auto-merge (squash)
August 20, 2026 09:20
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a renovate
packageRulerestricting thejavadependency 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, insidemise install:The cause:
25.0.4+101.0.LTSis Adoptium's interim respinjdk-25.0.4.1+1. Adoptium builds respins only for the platforms that needed the fix — this one shippedalpine-linux/x64andmac/x64and nothing else, versus eleven platforms for mainline25.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, so25.0.4.1+1becomes+101while 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
descriptionsays to drop it if Adoptium's respin coverage changes.Testing
bunx tsc --noEmit,bun run lint,bun run test -- --ciall passrenovate-config-validatoraccepts the config both as an argument and as auto-discovered repo config25.0.4+7.0.LTS,25.0.5+9.0.LTS,26.0.0+36.0.LTSallowed;25.0.4+101.0.LTS,25.0.4+201.0.LTSblocked