Repository navigation
Conversation
e456f16 to
3bb905e
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
ab4b69a to
681c732
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ab4b69a64e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| app/ \ | ||
| api_server/ \ |
There was a problem hiding this comment.
Include Alembic migrations in the Python-floor scan
When a migration under alembic_db/ uses Python 3.11-only syntax or APIs, neither new job catches it: this Vermin path list omits that directory, and pytest --collect-only imports the migration tests without executing their command.upgrade(...) calls. app/database/db.py configures alembic_db/ as the script directory and executes those migrations during database initialization, so such a change could still crash startup for Python 3.10 users despite this check; add alembic_db/ to the scanned paths.
Useful? React with 👍 / 👎.
pyproject.tomldeclaresrequires-python = ">=3.10"but nothing in CI enforces it. Unit Tests pin 3.12, Build Test (3.10) only pip-installsrequirements.txt, and the launch test only proves startup imports on 3.10 — which leaves ~24 production modules uncovered (lazy model-family imports such ascomfy/text_encoders/sam3_clip.pyandcomfy/ldm/modules/temporal_ae.py), and never sees 3.11+ names used inside function bodies of the modules it does import.Two jobs:
vermin==1.8.0over the production tree (comfy/,comfy_extras/,comfy_api/,comfy_api_nodes/,comfy_execution/,comfy_config/,app/,api_server/,utils/,middleware/, top-level*.py) with--target=3.10- --violations. AST-level, so it catches 3.11+ names anywhere in a file, not just at import time. Runs in seconds, no torch install.test-unit.ymldoes and runspytest tests-unit --collect-only -qon a real 3.10. Collection executes every module-level import in the test tree, which is exactly the class of breakage that shipped unnoticed.Stacked on #16305 deliberately: the collection job is red against
masteruntil that merges (from typing import NotRequiredin the assets tests). Basing it here keeps this PR's own guard green, andpull_requestcarries nobranches:filter — matchingruff.yml— so both jobs run on this stacked PR and prove themselves before merge.Two vermin
--excludeflags are load-bearing rather than cosmetic.longistorch.Tensor.long()misread as the removed Python 2 builtin;string.rsplitis a local variable namedstringincomfy/ldm/util.pymisread as the Python 2stringmodule. Both are Python 2 rules that cannot affect a 3.10 floor, but left in they put 14 files into vermin's "versions could not be combined" state, where a real 3.11 finding is downgraded to inconclusive and the run exits 0. Verified by injectingNotRequiredinto one of those files: masked without the excludes, caught with them. No directory is excluded and the target is not lowered.The tree is 3.10-clean today, so the guard starts green: vermin exits 0 locally, and collection on a local 3.10 env gathers 1745 tests with the #16305 fix present.