chore: regenerate uv.lock to match pyproject's bench extra#543
chore: regenerate uv.lock to match pyproject's bench extra#543mattmillerai wants to merge 1 commit into
Conversation
`uv lock --check` failed on main: pyproject declares `optional-dependencies.bench = ["anthropic>=0.40"]`, but uv.lock was never regenerated to match, so `anthropic` was absent from the lock entirely. Because the lock was out of sync, any `uv run` / `uv sync` / `uv lock` in any worktree silently rewrote uv.lock with this same delta, and a subsequent `git commit -a` / `git add .` would sweep that churn into an unrelated PR. Regenerated with `uv lock` on a clean checkout of main. The diff adds only the bench extra's dependency tree (anthropic + annotated-types, docstring-parser, jiter, pydantic, pydantic-core, typing-inspection) and the `bench` entry in `provides-extras`. No existing package version pin changes and nothing is removed. The one incidental change is a marker simplification on the exceptiongroup -> typing-extensions edge, which uv normalizes away because anthropic requires typing-extensions unconditionally. It is inert: the exported install set is byte-identical to the previous lock on Python 3.10, 3.12, 3.13 and 3.14. CI installs via `pip install -e .` and never reads uv.lock, so this carries no CI risk.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
There was a problem hiding this comment.
🔍 Cursor Review — Consolidated panel
Triggered by @mattmillerai.
✅ No high-signal findings.
Panel: 6/8 reviewers contributed findings.
Reviewers that did not contribute: kimi-k2.5:adversarial (empty), kimi-k2.5:edge-case (empty)
|
The failing Root cause:
Worth noting this is the mirror image of the bug this PR fixes: This PRs own claim still verifies: I have deliberately not fixed the tomlkit issue here. This PR is lockfile-only by design — its entire purpose is to stop unrelated churn being swept into unrelated diffs (the #533 mistake). Folding a Filed as a follow-up (fix the two |
|
Correction to my comment above: the tomlkit fix is already open, so no new follow-up is needed. Two PRs already cover it — #536 ( Separately, and worth a maintainer decision: this PR appears to be one of three open PRs doing the same |
The lockfile refresh was swept in by a local 'uv run' (main's uv.lock is stale against pyproject's bench extra, so uv regenerates it on any run). It is unrelated to the sanitize-ext fix and is already the subject of dedicated PRs #541/#543, so it does not belong in this diff. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The lock refresh (adding anthropic/pydantic for the `bench` optional extra) was swept in accidentally by `uv run` regenerating the stale lock during local test runs. It has nothing to do with the per-operation `workflow_too_large` hints this PR is about, and the same re-lock is already covered by its own dedicated PRs (#534/#541/#543/#545). Keeps this PR scoped to comfy_cli/command/workflow.py + its tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ELI-5
pyproject.tomlsays thebenchextra needsanthropic, butuv.locknever got the memo —anthropicisn't in the lock at all. Souvthinks the lock is wrong and silently rewrites it every time anyone runsuv run,uv sync, oruv lockin any worktree. Then the nextgit commit -a/git add .sweeps those ~287 lines into whatever unrelated PR you happened to be working on.This runs
uv lockonce and commits the result, so the lockfile matchespyproject.tomlanduvstops dirtying the tree.Problem
uv lock --checkfails onmaintoday:pyproject.toml:59declaresoptional-dependencies.bench = [ "anthropic>=0.40" ](added with the bench runner in #490), but the lock was never regenerated —anthropicis entirely absent from it.This is not cosmetic. It already bit #533: commit
ee4ccddaccidentally committed exactly this delta into an unrelated 2-filetomlkitfix, contradicting that PR's own description. It was reverted in623fa5f, but the trap stayed armed and will keep catching anyone who runs auvcommand before committing.Fix
uv lock, run on a clean checkout ofmain, committed alone with nothing else in the diff.Verification
uv lock --checknow exits 0 (was exit 1).uv.lockchanges — 1 file, +285/-2.anthropic, plus its transitive depsannotated-types,docstring-parser,jiter,pydantic,pydantic-core,typing-inspection— and thebenchentry inprovides-extras.-name =/-version =lines in the diff).uv lockproduces a byte-identical file.ruff check(all passed),ruff format --check(235 files formatted),pytest(2573 passed, 37 skipped).uv run --extra devcycle now leavesuv.lockuntouched and the tree clean — previously it would have rewritten it. The footgun is disarmed.One incidental change, and why it's safe
Beyond the expected delta,
uvalso simplified one marker on a transitive edge:This is
uvnormalizing away a now-redundant marker:anthropicrequirestyping-extensionsunconditionally, so the version-gated edge no longer constrains anything. It is not a version bump (exceptiongroupstays 1.3.0).It is provably inert. Exporting the resolved install set from the old lock and the new lock gives a byte-identical result on Python 3.10, 3.12, 3.13 and 3.14 — including 3.13+, which is exactly where that marker would have mattered. Nothing that installs today installs differently.
Risk
Minimal. CI never reads
uv.lock— every workflow installs viapip install -e .(build-and-test,pytest,test-mac,test-windows,run-on-gpu). The benefit is purely thatuvcommands stop dirtying the working tree.Noted for follow-up (deliberately not in this PR)
While verifying, I found a separate, pre-existing staleness:
pylock.toml(tracked, regenerated by theuv-exportpre-commit hook) is also out of date — regenerating it addsbackoff,distro, andposthog.I confirmed it is independent of this change: regenerating
pylock.tomlon pristinemainproduces a file identical to regenerating it on this branch (same checksum), and its delta involves runtime deps, notanthropic. So this PR neither causes nor worsens it.I left it out on purpose — folding unrelated churn into this diff would recreate the exact problem this PR removes. It's the same class of footgun and worth its own one-line fix.