Skip to main content

CI matrix (lean vs fat)

Two build variants exist today:

  • Lean (feat/pylon-lean-arrow-endpoint and everything downstream): numpy C exts commented out in Setup.local. Smaller pylon.wasm, Arrow-endpoint-shaped surface. Smokes must SKIP-if-missing numpy et al.
  • Fat (default profile pre-branch-cut): every cap linked. Smokes run with PYLON_REQUIRE_FAT=1; missing deps FAIL rather than SKIP.

The build job in .github/workflows/ci.yml runs both variants as a matrix on every PR / manual dispatch. The switch is a single env var — LEAN=1 tells scripts/wire-numpy.sh to skip numpy static wiring, and PYLON_REQUIRE_FAT=1 on the fat variant promotes any _HAVE_NUMPY skip in a smoke into a hard fail. Both variants keep the private-repo gate from commit 5a073b22:

Matrix entryLEANPYLON_REQUIRE_FATPurpose
lean1Fast signal; numpy-transitive smokes SKIP
fat01Release-cut gate; SKIPs promote to FAILs

Additional non-matrix jobs (smoke-audit, MP smokes) remain single-variant.

Local reproduction

# Lean (default on this branch)
make smoke

# Fat — promotes SKIPs to FAILs
PYLON_REQUIRE_FAT=1 make smoke

# MicroPython
make smoke-micropython

The workflows under .github/workflows/ are currently paused (repo is private; hosted-runner budget). Local reproduction under nektos/act:

make ci-install-act # one-time
make ci-local-checks # shellcheck + tsc + reference-worker
make ci-local-build # CPython wasip2 cross-build + smoke
make ci-local # everything matched by `push`