Skip to content

ComfyUI Base 3.22.1

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Oct 04:04
4b0fa2b

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 1 as 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 -n and py_compile pass, and the workflow YAML parses.
  • The publish step, extracted from the YAML, ran against a fake gh in
    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