Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


id: ADR-0035 title: Update dependencies with Dependabot, grouped by the pinned families status: accepted date: 2026-09-13 deciders: [paul-heyse] level: decision principles: [DM-31, DM-51, DM-48] blueprint: [§3.1] review: not-required: a supply-chain process decision; neither review raised a finding against it evidence: Proposed supersedes: [] superseded-by: null revisit: Dependabot cannot express a grouping the family rule needs, in which case Renovate is the declared fallback (register row R-13) verification: rust / family-check on every Dependabot PR; rust / deny; governance / pr-title


ADR-0035: Update dependencies with Dependabot, grouped by the pinned families

Context

ADR-0018 pins both families = family-wide, so an upgrade is never a single-crate bump: every arrow* and parquet* crate must move together, and so must every datafusion* crate plus object_store.

Scope

Binds the update mechanism and its grouping. Which upgrades are accepted is a per-PR decision with family-check as the gate.

Drivers

Ungrouped updates would open a dozen PRs that each fail family-check; a grouped PR is reviewable as one decision; github-actions pins by commit SHA and needs its own cadence.

Options

Renovate — kept as the declared fallback rather than the default: Dependabot needs no extra app installation on a single-maintainer public repository. Manual upgrades — rejected: nothing would notice a yanked crate.

Outcome

Cargo monthly with versioning-strategy: increase and groups arrow-family (arrow*, parquet*), datafusion-family (datafusion*, object_store), pyo3-family (pyo3*, numpy), codegen (syn, quote, proc-macro2, prettyplease) and numerics. uv monthly with quality-tools and runtime groups and idaes-pse ignored. GitHub Actions weekly, grouped. Docker for the solver base image.

Consequences

A codegen group PR must carry a regeneration commit (ADR-0031); the parity pin never moves by bot, because moving it is an ADR (ADR-0003).

Compensating controls

rust / family-check fails a PR that moves one crate of a family; pinact and Dependabot together keep every action pinned by SHA with a version comment.

Confirmation

Every bot PR runs the full required-check set before it can merge; cargo deny catches a newly yanked or newly advisory-carrying version.

Pros and cons

Monthly cadence trades freshness for review load; the weekly actions cadence exists because action SHAs move for security reasons.

More information

Blueprint §3.1 (pins and families); .github/dependabot.yml; ADR-0018; register row R-13.

Status history

  • 2026-09-13 — accepted with the repository-seeding pull request (backfilled from blueprint revision 3).