Update Dependabot Workflow to use package directories.#1429
Merged
Conversation
Signed-off-by: Steve Scargall <[email protected]>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the repository’s Dependabot configuration to correctly handle uv workspaces by enumerating workspace member directories, so dependency bumps update the appropriate member pyproject.toml files alongside uv.lock.
Changes:
- Switch Dependabot
uvconfig fromdirectorytodirectoriesand list the root plus eachuvworkspace member directory. - Add a Dependabot group (
uv-workspace) to consolidateuvdependency updates into a single PR.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Purpose of the change
Make Dependabot edit the right pyproject.toml when it bumps a workspace dependency. Today the uv ecosystem entry in
.github/dependabot.yml only lists directory: "/", so Dependabot updates the root manifest and uv.lock but leaves the workspace member manifests (packages/server/pyproject.toml etc.) untouched. The result is a stale specifier line that fails uv lock --check in CI — see PRs #1409 (sentence-transformers), #1410 (cohere), and #1411 (tzdata), all of which bumped only uv.lock.
Description
Switch from directory: (singular) to directories: (plural) and enumerate every uv workspace member declared in the root pyproject.toml's [tool.uv.workspace] members:
Also add a single uv-workspace group so the weekly run produces one consolidated PR instead of one per dependency, which keeps uv.lock churn in a single diff.
Why this should fix the failing PRs going forward: with each workspace dir explicitly listed, Dependabot's uv ecosystem can locate the matching [project.dependencies] line for a given package and update it alongside uv.lock, instead of bumping only the lockfile's requires-dist mirror.
Note: this does not retroactively repair open Dependabot PRs (#1407, #1408, #1409, #1410, #1411). After this merges, those can be regenerated under the new config by commenting @dependabot recreate on each one (or closed in favor of consolidated bump PRs like #1426).
Fixes/Closes
N/A — root-cause fix for the class of bug seen in #1409, #1410, #1411 rather than a single linked issue.
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.
Test Results: [Attach logs, screenshots, or relevant output]
YAML schema is validated automatically by GitHub's Dependabot service the moment the branch is pushed (the Dependabot status check on this PR, and the parsed config visible under Insights → Dependency graph → Dependabot). Behavioral verification must occur post-merge because Dependabot only reads its config from the default branch.
Post-merge verification plan:
packages/server/pyproject.toml:36).
passes.
Checklist
Maintainer Checklist
Screenshots/Gifs
N/A
Further comments
If this config change turns out not to fix the workspace gap (i.e. Dependabot still leaves packages/server/pyproject.toml stale after a @dependabot recreate on #1411), the fallback is to promote frequently-bumped workspace deps into the root [tool.uv] constraint-dependencies block, following the pattern in #1426. The directories: approach is the lower-friction first try.
Separately noted but not addressed here: .github/workflows/check-uvlockfile.yml checks out main instead of the PR head, so it currently passes regardless of the PR's actual lockfile state. That's a follow-up.