Skip to content

chore(renovate): group non-major updates into a single PR - #2831

Open
zktaiga wants to merge 1 commit into
mainfrom
renovate-group-non-major
Open

chore(renovate): group non-major updates into a single PR#2831
zktaiga wants to merge 1 commit into
mainfrom
renovate-group-non-major

Conversation

@zktaiga

@zktaiga zktaiga commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds the group:allNonMajor preset to Renovate config.
  • Collapses minor and patch dependency updates across all managers (gomod, npm, dockerfile, github-actions) into a single grouped PR titled chore(deps): update all non-major dependencies.
  • Majors, digest updates, pin-dependencies PRs, and vulnerability alerts are not affected — they remain as individual PRs.

Context

ssvlabs/ssv currently has 16 open Renovate PRs, the oldest from May 2025. Historical merge rate is ~12% (3/26) — most PRs age out and are auto-closed by abandonments:recommended without ever being reviewed. The main driver is per-dependency PR sprawl: each minor/patch release of each dep opens its own PR.

This pilot is intentionally a single-line change (one added preset) to isolate the effect before layering further improvements (scheduling, rebase-behavior tuning, vulnerability-alert separation).

Expected effect on current queue

After the next Renovate run, ~8 of the 16 open PRs collapse into one grouped PR (minor/patch across otel/sdk [sec], go-ethereum [sec], btcd/btcec, litter, go-chi/render, docker/docker [sec], styled-components, postcss [sec]). The remaining 8 (digest bumps, pin-deps PRs, config migration, abandoned-tagged) are unchanged.

Test plan

  • Merge; verify Renovate's next run closes the superseded individual PRs with a "superseded by" comment.
  • Verify a single chore(deps): update all non-major dependencies PR is opened against stage.
  • Monitor for 2–3 weeks: compare PR creation rate and grouped-PR CI stability vs. prior baseline. If the group PR is too fat or conflict-prone, the natural next step is matchManagers-scoped grouping (e.g. gomod-only).

Reduces per-dependency PR volume by adding `group:allNonMajor`, which
collapses minor and patch updates across all managers into one grouped
PR. Majors and security alerts remain unchanged.
@zktaiga
zktaiga requested review from a team as code owners April 24, 2026 12:27
@greptile-apps

greptile-apps Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds the group:allNonMajor Renovate preset so all non-major (minor/patch) dependency bumps are batched into a single grouped PR instead of one PR per package. The change is intentionally minimal to pilot the grouping behavior before tuning scheduling or manager-scoped rules.

Confidence Score: 5/5

Safe to merge — single-line config addition with no code changes and well-understood Renovate preset semantics.

The change is a one-line addition of a well-known, officially-supported Renovate preset. It does not affect application code, tests, or build logic. The existing packageRules for gomod (gomodTidy, gomodUpdateImportPaths) are unaffected and will still apply within grouped PRs. No P0/P1 findings were identified.

No files require special attention.

Important Files Changed

Filename Overview
.github/renovate.json Adds group:allNonMajor preset to collapse minor/patch dependency update PRs into a single grouped PR; no other logic changed.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Renovate detects dependency update] --> B{Major version bump?}
    B -- Yes --> C[Individual PR per dependency]
    B -- No minor or patch --> D{Vulnerability alert?}
    D -- Yes --> E[Individual vulnerability-alert PR]
    D -- No --> F[Grouped into single non-major PR]
    F --> G{gomod manager?}
    G -- Yes --> H[Apply gomodTidy and gomodUpdateImportPaths]
    G -- No --> I[PR opened as-is]
Loading

Reviews (1): Last reviewed commit: "chore(renovate): group non-major updates..." | Re-trigger Greptile

@oleg-ssvlabs oleg-ssvlabs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice.
Does this change mean that updates for major versions will remain as separate PRs?

@zktaiga

zktaiga commented Apr 24, 2026

Copy link
Copy Markdown
Contributor Author

Nice. Does this change mean that updates for major versions will remain as separate PRs?

Yes.

@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.3%. Comparing base (34657cf) to head (ec116a3).
⚠️ Report is 120 commits behind head on main.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 60 days of inactivity. It will be closed in 30 days if there are no updates. Please comment if you would like to keep it open.

@github-actions github-actions Bot added stale and removed stale labels Jun 24, 2026
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.

3 participants