Repository navigation
ComfyUI Base 3.22.1: verify names every failing test; the sage dry run passes when the release holds the arch (#44)
Two CI fixes, found 2026-10-17.
1. A failing suite's report named 4 of 7 failures
| Where | What went wrong | Now |
|---|---|---|
lib/95-summary.sh |
pytest ran with -rs, so the short summary |
|
| listed only skips | -rfEs: every failed and errored test is named |
|
_build/verify.sh _verify_failures |
awk … | head -200 cut the |
|
| FAILURES section and broke awk's pipe | every FAILED/ERROR summary |
|
line first, then the sections, capped inside awk (p && n++ < 200) |
||
lib/95-summary.sh |
under a package script's set -Eeuo pipefail, a |
|
| red suite tripped the base's ERR trap at the pipeline into tee (exit 4, | ||
| blaming tee) | `... | tee "$out" && rc="${PIPESTATUS[0]}" || | |
| rc="${PIPESTATUS[0]}"` |
Why not || rc="${PIPESTATUS[0]}" alone: the suite's _bash helper
sources the base without pipefail. There, the pipeline returns tee's 0,
the || never runs, and a red suite reads green. That is the 2.0.14 bug
its test guards against. The && … || … form reads pytest's own status
both ways and never trips the trap. I checked all four cases (pipefail
on and off, pytest 0 and 3) under set -E with an ERR trap.
2. The sage-wheels dry run failed when wheels were already published
A pull request builds every arch (--all) and runs the publish step
dry. The write-once check still ran against the real release and exited
1 on the first arch already there (run 39073460610, sm_100). Now, when
an asset exists, the step compares the published sm_<arch>.sha256 with
the fresh wheel's:
- identical: says so, and drops that wheel from the upload list;
- different, or no sum published (half-published): a
::warning::
in a dry run, and the run continues; - different, real publish:
exit 1as before, before anything
uploads.
The wheels are probably not byte-reproducible (no SOURCE_DATE_EPOCH),
so a PR dry run will usually take the warning path. It no longer fails.
Release
VERSION 3.22.1, handbook line 3 and a §10 entry. package.py --base
rebuilt the zip and MANIFEST.sha256, and --base --check says it is
current.
Tested
Nothing heavy ran on the Mac and no pod was used. On the Mac:
bash -nandpy_compilepass, and the workflow YAML parses.- The publish step, extracted from the YAML, ran against a fake
ghin
six cases (dry or real × identical, different, half-published). Exit
codes were 0, 0, 1, 0, 0, 1 as intended. - The two new tests and the existing verify test that use a Python
harness passed when called directly.
This PR's GitHub-hosted CI runs the full suite, including the new
errtrace runner test.
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
The zip is what a pod installs. Handbook: comfyui-base-handbook.md