chore(renovate): add stabilization delay, weekly schedule, and PR cap#12638
Conversation
- minimumReleaseAge: 7 days — wait for packages to stabilize before opening PRs; prevents chasing yanked releases and bleeding-edge versions that may break things - schedule: Monday morning only — batches all updates into one weekly window instead of PRs trickling in throughout the week - prConcurrentLimit: 10 — caps open Renovate PRs so the queue stays manageable - Security updates bypass both limits (minimumReleaseAge: 0, schedule: any time) so CVE patches still land immediately
There was a problem hiding this comment.
Pull request overview
This PR adjusts Renovate’s dependency-update workflow in renovate.json by adding global throttling/batching settings and a security-specific exception, and it also introduces new grouping rules for non-major Python and npm updates.
Changes:
- Add global Renovate controls:
minimumReleaseAge, weeklyschedule, andprConcurrentLimit. - Add a security-targeted package rule intended to bypass the delay/schedule.
- Add new grouping rules for non-major
pip_requirementsandnpmupdates.
RayBB
left a comment
There was a problem hiding this comment.
Copilot makes some good points. Can you please respond or resolve them and then we can take a look?
|
uv and npm config should have minimum release age of 7 days. |
…nimumReleaseAge on grouped rules - Add prConcurrentLimit: 0 to security packageRule so CVE patches are never blocked by the global 10-PR cap - Add explicit minimumReleaseAge: "7 days" to the Python and JS grouping rules for clarity (global default already applies, but explicit is safer)
|
Addressed all Copilot threads and your comment @RayBB: Real bug fixed (Copilot thread on security rule): Added Explicit PR description clarified (Copilot threads on grouping rules): Updated the "What this does NOT change" section to be explicit that the two new grouping rules are new additions — the existing named groups (eslint, jest, mypy, actions) are unchanged. All 3 Copilot threads resolved. |
RayBB
left a comment
There was a problem hiding this comment.
@mekarpeles do you want to make it so we consolidate PRs instead of having one PR for each dependency?
you can configure renovate to consolidate PRs for minor bumps like this, if you find that desirable.
https://stackoverflow.com/questions/66471226/renovate-combine-all-updates-to-one-branch-pr
Comment is from: #12713
|
@RayBB for now, maybe easier to land this and test PRs individually, though a followup PR for minor bumps may be beneficial. |
Problem
Renovate currently opens PRs the moment a new version publishes, with no concurrency limit and no grouping. This causes:
Changes
Top-level settings:
minimumReleaseAge"7 days"schedule"before 9am on Monday"prConcurrentLimit10New grouping rules (the big change):
Instead of one PR per package, Renovate will now open at most two PRs per week:
"Python dependencies (non-major)"— all pip patch/minor updates in one PR"JS dependencies (non-major)"— all npm patch/minor updates in one PRMajor version bumps still get individual PRs (they need dedicated review).
Security updates bypass all limits —
minimumReleaseAge: "0 days",schedule: "at any time", andprConcurrentLimit: 0so CVE patches still land immediately, ungrouped, and are never blocked by the 10-PR cap.What this does NOT change
automergeremainsfalseeverywhereNote: Two new grouping rules are added (Python non-major and JS non-major) — the above refers to pre-existing rules only.
Expected outcome