From 71f0539214c5c5b2fbfd48b592a222c516c00dec Mon Sep 17 00:00:00 2001 From: martinfrancois Date: Fri, 7 Aug 2026 14:36:44 +0200 Subject: [PATCH] fix(renovate): separate majors and automerge non-major updates group:all sets separateMajorMinor to false, so majors shared a branch with every other update. Remove it and group only the non-major update types into one automergeable pull request, leaving majors ungrouped and review-required. This repository previously automerged nothing: automerge was false at the root and every package rule set it to false. GitHub Actions and the workflow-managed tooling are its only dependencies, so those rules disabled automatic merging entirely. Also drop dependencyDashboardApproval from the major rule, which suppressed pull-request creation rather than merely requiring review, and adopt pinDigests, statusCheckWhen and the shared concurrency settings. --- renovate.json | 54 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/renovate.json b/renovate.json index de9a5ca..11f2d38 100644 --- a/renovate.json +++ b/renovate.json @@ -3,19 +3,32 @@ "extends": [ "config:recommended", "helpers:pinGitHubActionDigests", - ":rebaseStalePrs", - "group:all" + ":rebaseStalePrs" + ], + "reviewers": [ + "martinfrancois" + ], + "labels": [ + "dependencies" ], - "reviewers": ["martinfrancois"], - "labels": ["dependencies"], "rangeStrategy": "replace", + "pinDigests": true, + "prConcurrentLimit": 0, + "branchConcurrentLimit": 0, "minimumReleaseAge": "7 days", "minimumReleaseAgeBehaviour": "timestamp-required", "internalChecksFilter": "strict", - "automerge": false, + "statusCheckWhen": { + "minimumReleaseAge": "never" + }, + "dependencyDashboardApproval": false, + "separateMajorMinor": true, + "separateMultipleMajor": true, "vulnerabilityAlerts": { "enabled": true, - "labels": ["security"] + "labels": [ + "security" + ] }, "customManagers": [ { @@ -46,20 +59,27 @@ ], "packageRules": [ { - "description": "Require review for GitHub Actions and pinned action digest updates", - "matchManagers": ["github-actions"], - "automerge": false - }, - { - "description": "Require review for workflow-managed tooling such as Tessl CLI and commitlint", - "matchManagers": ["custom.regex"], - "automerge": false + "description": "Bundle every non-major update into one automergeable pull request. Major updates are deliberately excluded so that a pending major never holds back the bundle.", + "matchUpdateTypes": [ + "minor", + "patch", + "pin", + "pinDigest", + "digest" + ], + "groupName": "all non-major dependencies", + "groupSlug": "all-non-major", + "automerge": true }, { - "matchUpdateTypes": ["major"], + "description": "Major updates land one at a time and require a human merge after review of the migration notes. No groupName is set: majors are already ungrouped because the bundle rule matches non-major types only, and forcing one would split lockstep groups.", + "matchUpdateTypes": [ + "major" + ], "automerge": false, - "dependencyDashboardApproval": true, - "addLabels": ["major-update"] + "addLabels": [ + "major update" + ] } ] }