fix: use increase versioning-strategy for uv dependabot updates - #263
Merged
hcallahan-lowrisc merged 1 commit intoSep 9, 2026
Conversation
Dependabot's uv updater runs a widen-flavoured default strategy that
collapses a bounded requirement such as "gitpython>=3.1.58" into the
invalid PEP 508 string "gitpython*". That breaks every direct-dependency
bump PR at `uv sync` with:
ValueError: ... project.dependencies[...] must be pep508
(see dependabot/dependabot-core#15639). Setting versioning-strategy to
"increase" makes Dependabot bump the lower bound instead
(">=3.1.58" -> ">=3.1.59"), which is valid and matches the manifest's
existing floor style, so the generated PRs no longer need hand-fixing.
Signed-off-by: Harry Callahan <hcallahan@lowrisc.org>
hcallahan-lowrisc
force-pushed
the
dependabot-uv-versioning-strategy
branch
from
September 9, 2026 14:04
790199b to
bd9850c
Compare
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.
Problem
Every Dependabot PR that bumps a direct Python dependency currently ships a broken
pyproject.toml. Theuvupdater's default (widen-flavoured) strategy collapses a bounded requirement into an invalid PEP 508 string — e.g. in #262 it rewrote:"gitpython*"is not valid PEP 508 (a bare*with no operator), so CI fails at the install step for every job:The generated
uv.lockhalf is correct; only the manifest rewrite is broken. Transitive-only bumps are unaffected (they never touchpyproject.toml), which is why the failures look intermittent. To date these PRs have been merged only after hand-fixing each specifier.This is upstream bug dependabot/dependabot-core#15639 (open).
Fix
Set
versioning-strategy: increaseon theuvupdate entry.versioning-strategyis supported for the uv ecosystem (uv's updater inherits Python'sRequirementsUpdater).increasebumps the lower bound instead of widening —">=3.1.58"→">=3.1.59"— which is valid PEP 508, matches the manifest's existing floor style, and keeps floors from silently going stale.This PR includes AI-assisted content generated with Claude Code. All changes have been reviewed and are the responsibility of the listed author(s).