Skip to content

fix: use increase versioning-strategy for uv dependabot updates - #263

Merged
hcallahan-lowrisc merged 1 commit into
lowRISC:masterfrom
hcallahan-lowrisc:dependabot-uv-versioning-strategy
Sep 9, 2026
Merged

hcallahan-lowrisc merged 1 commit into
lowRISC:masterfrom
hcallahan-lowrisc:dependabot-uv-versioning-strategy

Conversation

@hcallahan-lowrisc

Copy link
Copy Markdown
Contributor

Problem

Every Dependabot PR that bumps a direct Python dependency currently ships a broken pyproject.toml. The uv updater's default (widen-flavoured) strategy collapses a bounded requirement into an invalid PEP 508 string — e.g. in #262 it rewrote:

-    "gitpython>=3.1.58",
+    "gitpython*",

"gitpython*" is not valid PEP 508 (a bare * with no operator), so CI fails at the install step for every job:

error: Failed to generate package metadata for `dvsim ... editable+.`
  ValueError: Dependency #4 of field `project.dependencies` is invalid:
    Expected semicolon (after name with no version specifier) or end
      gitpython*

The generated uv.lock half is correct; only the manifest rewrite is broken. Transitive-only bumps are unaffected (they never touch pyproject.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: increase on the uv update entry. versioning-strategy is supported for the uv ecosystem (uv's updater inherits Python's RequirementsUpdater). increase bumps 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).

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
hcallahan-lowrisc force-pushed the dependabot-uv-versioning-strategy branch from 790199b to bd9850c Compare September 9, 2026 14:04
@hcallahan-lowrisc
hcallahan-lowrisc added this pull request to the merge queue Sep 9, 2026
Merged via the queue into lowRISC:master with commit 5ac7974 Sep 9, 2026
6 checks passed
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