| name | update-deps |
| description | Create a PR in which all dependencies are updated to their latest versions and CI is passing. Only user initiated. |
Steps:
Stop and complain if there are uncommitted changes in the working directory.
git checkout main && git pull origin main
git checkout -b update-deps-
uv sync --upgrade
git commit uv.lock -m "chore: Update dependencies"
Run these, make any fixes needed, and commit the results (including automated changes) for each step where there are changes:
Always commit by listing specific files (never git commit -am / git add -A) — the user may have their own uncommitted edits in the working tree at any point, and blanket staging can sweep them into your commits.
make format && make lint && make typecheck && make docs
(usually these all pass without changes)
uv run pytest --inline-snapshot=fix
Running tests the first time will likely update some snapshots. Just commit those changes even if some tests are still failing.
After seeing what tests fail the first time, any future running of tests in this workflow should only be for some small subset. The full test suite will run in CI.
Run failed tests again. If the same snapshots get updated again, use dirty_equals matchers to handle non-deterministic fields.
git push origin HEAD and create a PR with the test:all-deps label. No description needed.
For remaining test failures, investigate and explain the problem.
Keep the label on the PR and wait for both regular CI and the full dependency compatibility workflow to pass. The full workflow reruns after each push while the label is present.