Skip to content

Commit eea43bc

Browse files
authored
ci: align dependabot config with harness-sdk conventions (#57)
1 parent 9506642 commit eea43bc

1 file changed

Lines changed: 84 additions & 39 deletions

File tree

.github/dependabot.yml

Lines changed: 84 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,129 @@
1+
# Dependabot configuration.
2+
#
3+
# Shared conventions across every ecosystem below (aligned with
4+
# strands-agents/harness-sdk):
5+
# - cooldown: hold new updates for a few days before opening a PR so we don't
6+
# churn on same-day releases. Majors get a long (30-day) window so a human
7+
# can vet breaking changes before the PR lands.
8+
# - groups: batch low-risk updates into grouped PRs. Dev tooling lands in one
9+
# PR, majors included, since a dev-tool major only touches CI and the
10+
# blast radius is small; minor/patch bumps land in another. Major production updates
11+
# are intentionally left ungrouped so they arrive as individual,
12+
# clearly-attributable PRs.
13+
# - schedule: poll weekly. The cooldown already delays PRs by days, so daily
14+
# polling just adds noise without surfacing updates any sooner.
15+
# - versioning-strategy: increase-if-necessary, which bumps the constraint
16+
# floor at a major boundary instead of just widening the upper bound, so CI
17+
# actually resolves and tests the new major rather than sitting on the old
18+
# one. Cargo does not support this option (it always updates the lockfile
19+
# and Cargo.toml together), so only the pip and npm sections set it.
120
version: 2
221
updates:
3-
- package-ecosystem: "cargo"
4-
directory: "/"
22+
# Rust workspace. Minor + patch bumps are batched; majors come individually
23+
# and wait out the 30-day cooldown for review. Grouping is pattern-based
24+
# because dependency-type grouping is not supported for cargo, so
25+
# development/production groups never match and every bump would open its
26+
# own PR.
27+
- package-ecosystem: 'cargo'
28+
directory: '/'
529
schedule:
6-
interval: "daily"
30+
interval: 'weekly'
731
open-pull-requests-limit: 100
832
labels:
9-
- "dependencies"
10-
- "rust"
33+
- 'dependencies'
34+
- 'rust'
1135
commit-message:
12-
prefix: "ci(rust)"
36+
prefix: 'ci(rust)'
1337
cooldown:
1438
default-days: 5
1539
semver-major-days: 30
1640
semver-minor-days: 7
1741
semver-patch-days: 3
1842
groups:
19-
development-dependencies:
20-
dependency-type: "development"
21-
applies-to: version-updates
43+
# Minor + patch bumps in one PR. Majors aren't matched by any group, so
44+
# they get individual PRs, gated by the 30-day semver-major cooldown
45+
# above for manual review.
2246
production-minor:
23-
dependency-type: "production"
2447
applies-to: version-updates
48+
patterns:
49+
- '*'
2550
update-types:
26-
- "minor"
27-
- "patch"
28-
- package-ecosystem: "pip"
29-
directory: "/"
51+
- 'minor'
52+
- 'patch'
53+
# Python bindings (maturin build backend at the repo root). Same batching
54+
# strategy as the Rust workspace.
55+
- package-ecosystem: 'pip'
56+
directory: '/'
3057
schedule:
31-
interval: "daily"
58+
interval: 'weekly'
3259
open-pull-requests-limit: 100
3360
labels:
34-
- "dependencies"
35-
- "python"
61+
- 'dependencies'
62+
- 'python'
3663
commit-message:
37-
prefix: "ci(python)"
64+
prefix: 'ci(python)'
65+
versioning-strategy: increase-if-necessary
3866
cooldown:
3967
default-days: 5
4068
semver-major-days: 30
4169
semver-minor-days: 7
4270
semver-patch-days: 3
4371
groups:
44-
dev-dependencies:
72+
# Dev/build tooling in one PR, matched by name because Dependabot does
73+
# not classify PEP 621 pyproject dependencies as development vs
74+
# production, so dependency-type grouping never matches for pip.
75+
development-dependencies:
76+
applies-to: version-updates
77+
patterns:
78+
- 'maturin'
79+
- 'pytest*'
80+
# Everything else: minor + patch bumps in one PR. Majors aren't matched
81+
# by any group, so they get individual PRs, gated by the 30-day
82+
# semver-major cooldown above for manual review.
83+
production-minor:
84+
applies-to: version-updates
4585
patterns:
46-
- "pytest"
47-
- "maturin"
48-
- package-ecosystem: "npm"
49-
directory: "/"
86+
- '*'
87+
update-types:
88+
- 'minor'
89+
- 'patch'
90+
# Node bindings at the repo root (napi). devDependencies only, so the
91+
# development group catches everything; a hypothetical production major
92+
# would still arrive as an individual PR.
93+
- package-ecosystem: 'npm'
94+
directory: '/'
5095
schedule:
51-
interval: "daily"
96+
interval: 'weekly'
5297
open-pull-requests-limit: 100
5398
labels:
54-
- "dependencies"
55-
- "node"
99+
- 'dependencies'
100+
- 'typescript'
56101
commit-message:
57-
prefix: "ci(node)"
102+
prefix: 'ci(typescript)'
103+
versioning-strategy: increase-if-necessary
58104
cooldown:
59105
default-days: 5
60106
semver-major-days: 30
61107
semver-minor-days: 7
62108
semver-patch-days: 3
63109
groups:
110+
# All development dependencies in one PR.
64111
development-dependencies:
65-
dependency-type: "development"
112+
dependency-type: 'development'
66113
applies-to: version-updates
114+
# Production minor + patch bumps in one PR.
67115
production-minor:
68-
dependency-type: "production"
116+
dependency-type: 'production'
69117
applies-to: version-updates
70118
update-types:
71-
- "minor"
72-
- "patch"
73-
- package-ecosystem: "github-actions"
74-
directory: "/"
119+
- 'minor'
120+
- 'patch'
121+
# GitHub Actions workflow pins. Low volume, so no grouping; the cooldown
122+
# still holds majors back for review before the bump PR opens.
123+
- package-ecosystem: 'github-actions'
124+
directory: '/'
75125
schedule:
76-
interval: "daily"
126+
interval: 'weekly'
77127
open-pull-requests-limit: 100
78128
commit-message:
79129
prefix: ci
@@ -82,8 +132,3 @@ updates:
82132
semver-major-days: 30
83133
semver-minor-days: 7
84134
semver-patch-days: 3
85-
groups:
86-
actions:
87-
patterns:
88-
- "*"
89-
applies-to: version-updates

0 commit comments

Comments
 (0)