Skip to content

chore: re-lock uv.lock to match the bench optional-dependency extra#545

Open
mattmillerai wants to merge 1 commit into
mainfrom
matt/be-3312-relock-uv-lock
Open

chore: re-lock uv.lock to match the bench optional-dependency extra#545
mattmillerai wants to merge 1 commit into
mainfrom
matt/be-3312-relock-uv-lock

Conversation

@mattmillerai

Copy link
Copy Markdown
Collaborator

ELI-5

pyproject.toml gained an optional bench extra a while back (in #490), but the lockfile was never regenerated to match. So the lock and the manifest disagreed: uv lock --check failed on main, and any bare uv run — like the one in our own test instructions — would silently re-lock and leave a ~287-line uv.lock diff in your working tree. That has already been committed into an unrelated PR by accident once, and reverted to keep that PR's diff clean. This regenerates the lockfile so the two agree again.

What changed

uv.lock only, regenerated with uv lock (uv 0.11.26) from a clean checkout of main:

  • Adds the anthropic dependency tree pulled in by the bench extra: anthropic, pydantic, pydantic-core, jiter, docstring-parser, annotated-types, typing-inspection.
  • Records bench in provides-extras.

Risk surface

The diff is 285 additions and 2 deletions. Everything else is purely additive. Both deletions:

  1. provides-extras = ["dev", "preview"]["bench", "dev", "preview"] — this is the manifest/lock disagreement being fixed.
  2. exceptiongroup's dependency on typing-extensions lost its python_full_version < '3.13' marker. This is a semantic no-op: exceptiongroup is only ever reachable under python_full_version < '3.11' (via anyio and pytest), so a < '3.13' marker is tautologically true everywhere it is installed, and uv simplified it away.

No existing package version changed — no other lines were removed. requires-python = ">=3.10" and the lockfile revision are unchanged.

Verification

  • uv lock --check → exits 0 (fails on main today).
  • uv run -p 3.10 --extra dev pytest tests/comfy_cli/command/ -q → 1157 passed, 2 skipped.
  • uv run -p 3.10 --extra dev pytest tests/comfy_cli/ -q → 2471 passed, 13 skipped.
  • ruff check . reports 14 pre-existing UP038 errors — identical on a pristine origin/main checkout, so unrelated to this change. ruff format --check . → 235 files already formatted.
  • uv run --extra bench python -c "import anthropic, pydantic" → installs the 7 new packages and imports cleanly (anthropic 0.117.0 / pydantic 2.13.4), confirming the newly-locked tree actually resolves rather than just looking plausible.
  • After a bare uv run, the working tree shows no new lock churn and uv lock --check still exits 0 — the silent re-dirty behavior is gone.

Judgment calls

The bench extra (anthropic>=0.40) was added to pyproject.toml without
regenerating uv.lock, so `uv lock --check` failed on main and a bare
`uv run` silently re-locked and re-dirtied the working tree.

Regenerated with `uv lock`. Adds the anthropic dependency tree
(anthropic, pydantic, pydantic-core, jiter, docstring-parser,
annotated-types, typing-inspection) and records the bench extra in
provides-extras. No existing package version changes.
@mattmillerai mattmillerai added agent-coded PR authored by the agent-work loop cursor-review Request Cursor bot review labels Jul 17, 2026
@dosubot dosubot Bot added size:XS This PR changes 0-9 lines, ignoring generated files. dependencies Pull requests that update a dependency file labels Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: cdf499f7-5daf-4f4b-9a5a-21fa1ac1a07e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch matt/be-3312-relock-uv-lock
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch matt/be-3312-relock-uv-lock

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 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)

@mattmillerai

Copy link
Copy Markdown
Collaborator Author

The failing build check is not caused by this PR — it is an environmental break on main that landed today, and it is already fixed by #536.

Root cause

tomlkit 0.15.1 was released today (2026-07-17 01:48 UTC). It makes Item.comment() reject line breaks, which breaks create_comfynode_config() in comfy_cli/registry/config_parser.py:75 and :250. Bisected locally across versions:

tomlkit Item.comment(multiline)
0.13.3 OK
0.15.0 OK
0.15.1 ValueError: Comment cannot contain line breaks

Timeline lines up exactly: main last passed pytest.yml on 2026-07-13 (a732f5c); tomlkit 0.15.1 published 01:48 today; this PR's run was 10:32 today.

Why this PR cannot be the cause

pytest.yml installs with pip install pytest pytest-cov jsonschema + pip install -e .. It never reads uv.lock, and uv.lock is the only file this PR touches (285+/2-). pip resolves the unpinned "tomlkit" from pyproject.toml to whatever is newest, so it picked up 0.15.1. Any PR opened against main today fails the same 9 tests.

The fix is #536, not here

#536 (fix(registry): emit pyproject hints as standalone comments for tomlkit 0.15) pins tomlkit>=0.13,<0.16 and emits standalone comments instead — its build check is green. Duplicating that fix into this lockfile-only PR would just conflict with it.

Merge-order note

#536 changes pyproject.toml but not uv.lock, so the two interact:

Verified the lockfile is still correct as-is: uv lock --check exits 0 on this branch and fails on a pristine main clone — the drift this PR fixes is still real and still unfixed on main.

Leaving the code untouched. Happy to rebase + re-lock the moment #536 lands.

mattmillerai added a commit that referenced this pull request Jul 17, 2026
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>
@mattmillerai

Copy link
Copy Markdown
Collaborator Author

🤖 Reviews-resolver re-checked this PR — status unchanged and confirmed:

⚠️ Blocker update: #536 is currently a draft and has a failing test check, so it can't land yet. This PR is therefore blocked on #536 being de-drafted and made green. Recommended order: land #536 first, then rebase + uv lock here (which also turns this PR's build green). Happy to do that re-lock the moment #536 merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-coded PR authored by the agent-work loop cursor-review Request Cursor bot review dependencies Pull requests that update a dependency file size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant