Skip to content

dependabot: group Cargo minor updates, split cross-letter families, include indirect deps - #40232

Merged
antiguru merged 5 commits into
deps-catchup/remainingfrom
deps-catchup/dependabot-groups
Oct 29, 2026
Merged

antiguru merged 5 commits into
deps-catchup/remainingfrom
deps-catchup/dependabot-groups

Conversation

@antiguru

@antiguru antiguru commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Groups minor as well as patch updates for the root Cargo workspace. Patch-only groups let minor updates arrive one crate at a time, which breaks cargo deny whenever crates sharing transitive dependencies move separately, as aws-config did in #40172. Families whose crates start with different letters get their own groups: the async stack, telemetry with tonic and prost (which opentelemetry-otlp and console-subscriber depend on), and arrow. duckdb and libduckdb-sys get a group of their own, because a DuckDB release also needs the libduckdb download in ci/builder/Dockerfile changed by hand. Everything else keeps the existing alphabetical split, which already keeps same-letter families like aws-* together. Major updates stay individual. Dependabot counts 0.x bumps as minor, so the config comment says how to handle a red group PR.

It also enables lockfile-only updates of indirect dependencies. The stack below catches the lockfile up first, so the first run stays small. It ignores idna_adapter 1.2, which would switch idna to ICU4X.

🤖 Generated with Claude Code

@antiguru
antiguru added this pull request to stack #40231 October 27, 2026 13:40
@antiguru antiguru changed the title deps catchup/dependabot groups dependabot: group Cargo updates by crate family, include indirect deps Oct 27, 2026
Comment thread .github/dependabot.yml Outdated
Comment on lines +34 to +43
# These releases pull in quick-xml 0.42 next to the quick-xml the rest of
# the graph uses, which cargo deny rejects as a duplicate.
- dependency-name: opendal*
versions: [">=0.59.5"]
- dependency-name: reqsign-aws-core
versions: [">=3.2"]
- dependency-name: reqsign-aws-v4
versions: [">=3.3.1"]
- dependency-name: reqsign-google
versions: [">=3.2"]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we shouldn't prevent these updates just for a cargo deny rejection.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the hdrhistogram, opendal and reqsign ignores in fee0451; only idna_adapter stays. (Posted by Claude Code)

@antiguru
antiguru force-pushed the deps-catchup/dependabot-groups branch 2 times, most recently from fee0451 to 7da630a Compare October 27, 2026 15:52
@antiguru antiguru changed the title dependabot: group Cargo updates by crate family, include indirect deps dependabot: group Cargo minor updates, split cross-letter families, include indirect deps Oct 27, 2026
@antiguru
antiguru requested a review from bosconi October 27, 2026 16:23
@antiguru
antiguru marked this pull request as ready for review October 27, 2026 16:23
@antiguru
antiguru requested a review from a team as a code owner October 27, 2026 16:23

@bosconi bosconi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two group boundaries need fixing, and the comment block should cover 0.x bumps. Details inline.

Comment thread .github/dependabot.yml Outdated
proto:
applies-to: version-updates
update-types: [minor, patch]
patterns: ["prost*", "tonic*"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

telemetry and proto need to be one group.

opentelemetry-otlp depends on tonic and prost (Cargo.lock), all 0.x. An otlp release that moves to a new tonic splits across the two groups, and each PR alone fails multiple-versions = "deny". console-subscriber has the same dependencies (Cargo.lock) and lands in simple1 via c*. Suggest ["tracing*", "opentelemetry*", "prost*", "tonic*", "console-subscriber"].

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merged into one telemetry-grpc group with console-subscriber in 4872e7b. (Posted by Claude Code)

Comment thread .github/dependabot.yml Outdated
arrow:
applies-to: version-updates
update-types: [minor, patch]
patterns: ["arrow*", "parquet", "iceberg*", "object_store"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add duckdb here. It depends on arrow (Cargo.lock), and #40266 already fails cargo deny on duplicate arrow-* crates (lint log). Under this config it joins simple1 and blocks all of a-m. object_store matches nothing in Cargo.lock.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added duckdb (and libduckdb-sys, which moves with it) to arrow and dropped object_store in 4872e7b. (Posted by Claude Code)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow-up in bb2e7f4: duckdb and libduckdb-sys now have their own group instead of joining arrow. A DuckDB release changes the libduckdb version that bin/lint-versions requires ci/builder/Dockerfile to install, and Dependabot can't edit the Dockerfile, so every such PR is red until someone pushes the download URL and checksums. #40266 (DuckDB 2.0) is that case. Inside arrow it would block arrow, parquet and iceberg each time. duckdb 1.10506 requires arrow ^58, so minor and patch arrow updates don't need duckdb to move along, and arrow majors aren't grouped. Patch releases of the duckdb crates keep the DuckDB version and pass on their own. (Posted by Claude Code)

Comment thread .github/dependabot.yml
applies-to: version-updates
update-types:
- patch
update-types: [minor, patch]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dependabot treats 0.y -> 0.(y+1) as minor, so Cargo-breaking 0.x bumps land here and in simple2. Please say so in the comment at lines 30-36, with the triage path for a red group: @dependabot ignore <crate> minor version, or a fix commit on the group branch.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a NOTE to the group comment covering 0.x minor bumps and the two triage paths, in 4872e7b. (Posted by Claude Code)

@antiguru
antiguru requested a review from a team as a code owner October 28, 2026 08:07
@antiguru
antiguru force-pushed the deps-catchup/dependabot-groups branch from 7b37202 to 4872e7b Compare October 28, 2026 08:07
antiguru and others added 4 commits October 28, 2026 04:42
Replace the alphabetical patch-only groups for the root Cargo workspace
with groups of crates that must move together, so shared transitive
dependencies stay unified and cargo deny's duplicate check passes. Minor
and patch updates are grouped, major updates stay individual. Also allow
lockfile-only updates of indirect dependencies, and ignore the releases
that would add a duplicate crate or switch idna to the ICU4X backend.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er families

Only families whose crates start with different letters need their own
group. Families that share a first letter (aws-*, serde*, windows*) stay
together in the alphabetical groups, and splitting the rest in two keeps
one broken update from blocking most of the graph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
opentelemetry-otlp and console-subscriber depend on tonic and prost, and
duckdb depends on arrow, so a release that moves them must land in one
PR or cargo deny rejects the duplicate crates. Drop object_store, which
nothing depends on. Note that Dependabot counts 0.x bumps as minor and
how to triage a red group PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@antiguru
antiguru force-pushed the deps-catchup/dependabot-groups branch from 4872e7b to 11f90e5 Compare October 28, 2026 08:42
A DuckDB release changes the libduckdb version that bin/lint-versions
requires ci/builder/Dockerfile to install, and Dependabot cannot edit the
Dockerfile. In the arrow group every DuckDB release would block arrow,
parquet and iceberg updates until someone pushed the Dockerfile change.
duckdb 1.10506 requires arrow ^58, so minor and patch arrow updates do not
need duckdb to move with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@antiguru
antiguru requested a review from def- October 28, 2026 10:25

@def- def- left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable, let's see if this causes less churn.

@antiguru
antiguru merged commit 099ab10 into main Oct 29, 2026
88 checks passed
@antiguru
antiguru deleted the deps-catchup/dependabot-groups branch October 29, 2026 08:44
@antiguru

Copy link
Copy Markdown
Member Author

Thanks for the reviews!

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.

3 participants