Skip to content

chore(deps): watch all three graphs from one dependabot entry - #927

Merged
forkwright merged 1 commit into
mainfrom
chore/consolidate-dependabot-directories
Aug 24, 2026
Merged

chore(deps): watch all three graphs from one dependabot entry#927
forkwright merged 1 commit into
mainfrom
chore/consolidate-dependabot-directories

Conversation

@forkwright

Copy link
Copy Markdown
Owner

The three package-ecosystem: cargo entries in this repo's dependabot config are why the smoltcp 0.14 bump arrived as three PRs that could not land.

The mechanism

thumos carries three independent dependency graphs with their own lockfiles — /, /crates/thumos (excluded from the workspace so it cross-compiles bare-metal to armv7a-none-eabi), and /fuzz (own empty [workspace], cargo-fuzz needs nightly).

A version bump declared in the root manifest spans all three. But three separate entries each regenerate only their own lockfile:

PR regenerated left stale
#925 root Cargo.lock crates/thumos pin + lock, fuzz/Cargo.lock
#924 crates/thumos/Cargo.lock root Cargo.lock, fuzz/Cargo.lock
#923 fuzz/Cargo.lock root Cargo.lock, crates/thumos pin

Each failed this repo's own drift gates — PIN DRIFT from rustfmt, and error: cannot update the lock file ... because --locked was passed from the workspace and kernel jobs. None could pass alone, and merging any one would have left the others' graphs disagreeing with the manifest they resolve from. They were consolidated by hand into #926.

This will recur on the next bump that touches a shared dependency. It is a config property, not bad luck.

The fix, and why I trust it

directories (plural) watches the same three graphs from a single entry, and groups span them.

Verified empirically rather than from documentation — aletheia already uses this form, and its dependabot PR #6897 is titled "bump the patch-updates group across 2 directories" with Cargo.lock and fuzz/Cargo.lock in one diff. That is exactly the shape thumos could not produce.

What is preserved

The previous comment's coverage rationale, verbatim in substance. It was right, and it was learned expensively: watching only / is how fuzz/Cargo.lock drifted nine releases with two path-dependencies missing entirely, invisible to cargo audit and cargo deny the whole time (#768).

That fix was correct about which graphs to watch. This changes how that coverage is expressed, not how much of it there is — same three directories, one entry instead of three.

Scope

Config only. No dependency versions change here.

The three cargo entries here covered the right graphs and produced PRs that
could not land. A version declared in the root manifest spans all three
lockfiles, but each entry regenerates only its own, so every PR left the other
two stale against the manifest they resolve from and failed this repo's drift
gates. The smoltcp 0.14 bump arrived as #923, #924 and #925 -- three PRs, none
mergeable alone, consolidated by hand into #926.

`directories` (plural) watches the same three graphs from a single entry and
groups them into one PR. Verified against aletheia, which already uses this
form: its #6897 is titled "bump the patch-updates group across 2 directories"
and carries both Cargo.lock and fuzz/Cargo.lock in one diff.

The coverage rationale the previous comment recorded is preserved, because it
was right and was learned expensively: watching only `/` is how fuzz/Cargo.lock
drifted nine releases with two path-dependencies missing (#768). This changes
how the coverage is expressed, not how much there is.
@forkwright
forkwright merged commit 5602f3f into main Aug 24, 2026
12 checks passed
@forkwright
forkwright deleted the chore/consolidate-dependabot-directories branch August 24, 2026 16:18
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.

1 participant