chore(deps): add 30-day Dependabot cooldown and napi group - #353
Merged
Conversation
24 Dependabot PRs stacked up averaging 30 days open; this cooldown codifies the project's existing 30-day soak policy so version updates are held until they are proven stable before Dependabot proposes them. napi/napi-derive/napi-build are ABI-coupled: a lone napi-derive bump (#282) produced 16 compile errors. The cargo group ensures they arrive together.
This was referenced Sep 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
24 Dependabot PRs were queued with an average age of ~30 days — all behind/dirty
relative to current main. Without a
cooldown, Dependabot's built-in 3-day defaultmeans every new release is proposed almost immediately, well before any ecosystem
soak time. This change codifies the project's existing informal 30-day soak policy
as a first-class config value.
The
napigroup addresses a concrete regression: PR #282 bumpednapi-derivealoneand produced 16 compile errors because
napi,napi-derive, andnapi-buildareABI-coupled and must move together. A grouped PR prevents that split from recurring.
What
Three
cooldown.default-days: 30blocks (one per ecosystem) and acargogroups.napientry. Key facts, verified 2026-09-05 against the live GitHub Docs Dependabot options reference:
cooldown.default-daysis supported by thecargo,npm, andgithub-actionsecosystems.semver-major-days/semver-minor-days/semver-patch-dayssub-keys are NOT supportedfor
github-actions, so onlydefault-daysis used everywhere for uniformity.cooldownkey Dependabot applies a 3-day built-in default.package-ecosystementry and cannot span ecosystems;@napi-rs/cli(npm side) therefore stays a standalone PR.
Not included
No
pipecosystem is added. The only Python-side dependency,maturin, is declared incrates/mds-python/pyproject.tomlunder[build-system].requires, which Dependabot'spipecosystem does not track, and the[project]table declares nodependencies, so apipentry would produce no PRs. The maturin version used by CI is pinned in the workflow files.Verification
node -e "const y=require('js-yaml'); …"(js-yamlis a hoisted workspace devDependency). Result: 3
updatesentries, each withcooldown.default-days == 30; only the cargo entry hasgroups.napi.patterns == ["napi","napi-derive","napi-build"].node scripts/verify-no-control-bytes.mjsexited 0:"Scanned 552 file(s), 5924221 byte(s)".
git diff --statshows only.github/dependabot.yml,16 insertions.
in this repo. The post-merge check is the repository's
Insights → Dependency graph → Dependabot tab: a config error shows there as a
red banner within minutes of merge.
Expected effect
After the next weekly Dependabot run:
napi-ecosystem crates arrive in a single grouped PR instead of threeindividual ones.
The existing backlog of stale Dependabot PRs is being flushed manually in a separate sweep.
Part of v0.4.3 housekeeping (step A1 of the v0.4.3 action plan).