Skip to content

Commit 7790264

Browse files
authored
chore: batch minor and patch Dependabot updates into one PR per manifest (#10277)
We were carrying 27 open Dependabot PRs, the great majority of them single patch bumps of transitive packages, and the review cost of that queue is entirely out of proportion to its risk. Every genuine problem found whilst clearing it (paramiko 5.0 breaking sshtunnel, use-resize-observer 10.0 dropping its default export, jest-dom 7.0 requiring a newer Node) was a major bump. Group minor and patch updates into a single weekly PR per manifest, and leave major updates arriving individually so each still gets its own review. Grouping applies to version updates only, so security updates are unaffected and continue to arrive as separate PRs.
1 parent 8ceffe3 commit 7790264

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

.github/dependabot.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
version: 2
2+
3+
# A note on the "groups" blocks below: minor and patch updates are batched into
4+
# a single PR per manifest per week, whilst major updates continue to arrive
5+
# individually. Majors are where the breakage lives and each one wants its own
6+
# review, whereas a dozen separate PRs for patch bumps is pure overhead.
7+
# Grouping applies to version updates only, so Dependabot security updates are
8+
# unaffected and still arrive as their own PRs.
29
updates:
310
- package-ecosystem: "docker"
411
directory: "/"
@@ -17,6 +24,13 @@ updates:
1724
- "Dependencies"
1825
commit-message:
1926
prefix: "Python dependency"
27+
groups:
28+
python-minor-and-patch:
29+
patterns:
30+
- "*"
31+
update-types:
32+
- "minor"
33+
- "patch"
2034
# paramiko 5.0 removed DSSKey, which sshtunnel 0.4.0 still references in
2135
# SSHTunnelForwarder.get_keys(); a major bump therefore breaks every SSH
2236
# tunnelled connection at construction time. sshtunnel has had no release
@@ -33,6 +47,13 @@ updates:
3347
- "Dependencies"
3448
commit-message:
3549
prefix: "Python dependency"
50+
groups:
51+
tools-python-minor-and-patch:
52+
patterns:
53+
- "*"
54+
update-types:
55+
- "minor"
56+
- "patch"
3657

3758
# Note that web/regression/requirements.txt begins with
3859
# "-r ../../requirements.txt", so this entry also sees everything pinned in
@@ -45,6 +66,13 @@ updates:
4566
- "Dependencies"
4667
commit-message:
4768
prefix: "Python dependency"
69+
groups:
70+
regression-python-minor-and-patch:
71+
patterns:
72+
- "*"
73+
update-types:
74+
- "minor"
75+
- "patch"
4876
ignore:
4977
- dependency-name: "paramiko"
5078
update-types: ["version-update:semver-major"]
@@ -57,6 +85,13 @@ updates:
5785
- "Dependencies"
5886
commit-message:
5987
prefix: "Javascript dependency"
88+
groups:
89+
runtime-javascript-minor-and-patch:
90+
patterns:
91+
- "*"
92+
update-types:
93+
- "minor"
94+
- "patch"
6095

6196
- package-ecosystem: "npm"
6297
directory: "/web"
@@ -66,3 +101,10 @@ updates:
66101
- "Dependencies"
67102
commit-message:
68103
prefix: "Javascript dependency"
104+
groups:
105+
web-javascript-minor-and-patch:
106+
patterns:
107+
- "*"
108+
update-types:
109+
- "minor"
110+
- "patch"

0 commit comments

Comments
 (0)