comfy-build-pins
comfy-build-pins
The depth behind comfy-build's pins rule. The parent skill already carries the
default — cut the first build with pipDependencies emptied — and that is
the right answer most of the time. Read this when you need to justify keeping a
line, or when a build failed on a conflict.
Why an inherited freeze is the usual first failure
init fills pipDependencies with the whole pip freeze, behind a two-line
comment header naming the platform it was captured on. The builder applies every
line as a pip override, and an override replaces what every package
declared rather than capping it — a user line for a package the torch stack also
names replaces it in place. Left alone, a freeze taken on macOS with Python 3.13
forces those exact versions onto a linux Python 3.12 build.
So the freeze is evidence about the environment the workflow ran in, not a set of pins for the environment being built. Emptying it lets the build resolve the packs' own requirements against the base image's torch, which is what you want.