Repository navigation
Renovate Fleet Compatibility Guards: Stay On The Installed Typescript And Node Majors - #1744
jaywedgeworth22 wants to merge 1 commit into
Conversation
Owner 2026-11-10 (OPS-1063): renovate keeps proposing typescript 7 and node 26 to fleet repos whose toolchains cannot take them. matchCurrentVersion line-guards keep every repo on its installed typescript and node major until a human opens the next line on purpose; repos already on 7 and 26, like BotFleet, are exempt and see no change. The block is written to be copied verbatim into any fleet repo's renovate.json. Fixes OPS-1063.
|
@kody start-review |
Code Review Completed! 🔥The code review was successfully completed based on your current configurations.
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
Automatic approval held: The review is not clean.
| "matchPackageNames": ["node"], | ||
| "matchManagers": ["docker", "nvm"], |
There was a problem hiding this comment.
Node guard uses invalid docker manager so Dockerfile updates bypass block
Dockerfile FROM bumps to node:26+ remain unblocked because docker matches no Renovate manager. Change the matchManagers entry to dockerfile.
Prompt for LLM
File renovate.json, lines 58-59:
Node guard uses invalid docker manager so Dockerfile updates bypass block
matchManagers lists docker which is not a Renovate manager, so the Node 26 block never applies to Dockerfile FROM updates. Renovate matches Dockerfile images under manager dockerfile, leaving node:26+ image bumps unguarded contrary to OPS-1063. Change docker to dockerfile in matchManagers.
Talk to Kody by mentioning @kody
Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.
| "matchPackageNames": ["typescript"], | ||
| "matchCurrentVersion": "/^[0-5]([.!+~-]|$)/", | ||
| "allowedVersions": "<6" |
There was a problem hiding this comment.
TypeScript <6 guard misses ^/~-prefixed versions
Caret and tilde ranges like ^5.9.2 bypass the <6 cap because matchCurrentVersion tests the raw value verbatim. Allow the optional prefix in the expression or switch to a version constraint.
Also found in:
renovate.json:48-50
Prompt for LLM
File renovate.json, lines 40-42:
TypeScript <6 guard misses ^/~-prefixed versions
The typescript 0-5 guard at line 41 never matches caret/tilde ranges like ^5.9.2 so the <6 cap fails open to typescript 7. Renovate regex matchCurrentVersion tests the raw value verbatim without stripping ^/~, defeating the OPS-1063 guard on the most common declaration form. Allow the optional prefix, e.g. /^[\^~v]?[0-5]([.!+~-]|$)/ or use a version constraint instead of regex.
**Also found in:**
- `renovate.json:48-50`
Suggested code:
"matchPackageNames": ["typescript"],
"matchCurrentVersion": "/^[~^v]?[0-5]([.!+~-]|$)/",
"allowedVersions": "<6"
Talk to Kody by mentioning @kody
Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.
|
Automatic approval held Kody's assessment:
|
Fixes OPS-1063.
The rules are written to be copied verbatim into any fleet repo's renovate.json; the Zulip post in the OPS-1063 work topic carries the copy-paste block.
Summary
Adds fleet compatibility guards to
renovate.jsonper OPS-1063 and owner rationale dated 2026-11-10. Renovate was proposing TypeScript 7 and Node 26 where toolchains, deployed runtimes, or platforms cannot take them, so this change pins suggestions to installed majors.Changes
<6viamatchCurrentVersion. Repos already on TypeScript 7, like BotFleet, are exempt.<7until a human opens 7.dockerandnvmmanagers. Repos already on 26 or newer are exempt.@types/node18 through 25 stays on<26to track the runtime major.Impact
Reduces incompatible major upgrade PR noise across the fleet and requires deliberate human PRs for TypeScript 6 to 7 and Node 25 to 26 moves. Behavior change is configuration-only with no runtime code change.
Open risks / Review findings (unresolved)
renovate.json:58– Node guard uses invalid docker manager so Dockerfile updates bypass block.renovate.json:40– TypeScript<6guard misses^/~-prefixed versions.Testing
No test evidence reported in the provided changes. Guard matching and Renovate evaluation remain unverified.