Skip to content

ci(dependabot): ignore caio >= 0.10, document the pip resync step - #329

Merged
cdeust merged 1 commit into
mainfrom
fix/dependabot-ignore-caio
Aug 1, 2026
Merged

ci(dependabot): ignore caio >= 0.10, document the pip resync step#329
cdeust merged 1 commit into
mainfrom
fix/dependabot-ignore-caio

Conversation

@cdeust

@cdeust cdeust commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Why

Two distinct problems showed up in this week's Dependabot batch. This PR closes the one that is a config bug and documents the one that is a workflow gap.

1. caio is unresolvable, not merely unresynced — ignore it

caio is transitive, not declared:

hypermnesia-mcp -> fastmcp -> fastmcp-slim -> py-key-value-aio -> aiofile -> caio

Every published aiofile pins caio below 0.10 (PyPI JSON API, verified 2026-08-01):

aiofile caio constraint
3.9.0 caio<0.10.0,>=0.9.0
3.10.0 caio~=0.9.0
3.11.0 caio~=0.9.0
3.11.1 (latest, 2026-05-16) caio~=0.9.0

caio 0.10.2 shipped 2026-07-05, after the latest aiofile. No version set satisfies both, which is why #322 failed every job rather than just Lint — pip reported ResolutionImpossible. #322 is closed; this rule stops it being reopened weekly. It should be removed as soon as aiofile widens its bound.

No advisory affects caio (gh api "/advisories?ecosystem=pip&affects=caio" returned none on 2026-08-01), so holding at 0.9.25 is not a security trade-off.

2. The resolvable deps PRs still arrive red — document the fix

Dependabot rewrites a version specifier and never runs uv lock or scripts/generate_pip_constraints.py. The Lint job guards exactly that chain (uv lock --check, generate_pip_constraints.py --check, added for #251), so every pip PR fails on arrival. The two-command resync now sits in a comment directly above the pip entry, along with the warning that pushing to a dependabot/** branch disables auto-rebase.

Scope

.github/dependabot.yml only — comments plus one ignore entry. No workflow, no dependency, no code.

Verification

  • YAML parses; the pip entry gains only ignore, with [{'dependency-name': 'caio', 'versions': ['>=0.10.0']}]
  • CI is expected green: nothing this PR touches is read by any job

caio is transitive (hypermnesia-mcp -> fastmcp -> fastmcp-slim ->
py-key-value-aio -> aiofile -> caio). Every published aiofile pins caio
below 0.10 — 3.9.0 `caio<0.10.0,>=0.9.0`, 3.10.0 through 3.11.1 (latest,
2026-05-16) `caio~=0.9.0` — while caio 0.10.2 shipped 2026-07-05, after
it. PR #322 was therefore not a resync failure but an unresolvable one:
every job failed, pip reporting ResolutionImpossible. Closed and ignored
until aiofile widens its bound. No advisory affects caio (GitHub
advisories API, 2026-08-01), so 0.9.25 is not a security hold.

The comment above the pip entry records the other half of the story: the
`deps` PRs that ARE resolvable still arrive red, because Dependabot never
runs `uv lock` or generate_pip_constraints.py, and Lint guards exactly
that chain. Writing the two-command fix next to the config saves the next
maintainer the log archaeology this cycle cost.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cdeust
cdeust merged commit 8705cdd into main Aug 1, 2026
19 checks passed
@cdeust
cdeust deleted the fix/dependabot-ignore-caio branch August 1, 2026 17:19
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