Release: zwasm + ClojureWasm
Full release process. Only run when explicitly instructed by the user.
Version argument: /release v0.13.0
Failure policy: Stop at the failed phase, report to user. Fix the issue (new commit on zwasm or CW), then re-run from the failed phase. Never tag or push until all prior phases pass.
Phase 1: zwasm Verification (Mac)
- •Ensure on
mainbranch with all feature branches merged - •
zig build test— all unit tests pass - •
python3 test/spec/run_spec.py --summary— spec tests 100% - •
bash bench/run_bench.sh— full benchmark suite, no regression
Phase 2: zwasm Verification (Ubuntu x86_64 via SSH)
See .dev/ubuntu-x86_64.md for SSH connection and command patterns (nix develop).
- •Push
mainto remote:git push origin main - •SSH pull with submodules:
git pull --recurse-submodules(+git submodule update --initif first time) - •Convert spec tests:
bash test/spec/convert.sh(uses submodule attest/spec/testsuite/) - •
zig build test— all tests pass on x86_64 - •
python3 test/spec/run_spec.py --summary— spec tests pass - •
bash bench/run_bench.sh— benchmarks, no extreme regression
If Ubuntu reveals failures not seen on Mac, fix the root cause before proceeding.
Phase 3: ClojureWasm Verification (relative path build)
- •
cd ~/ClojureWasm - •Ensure
build.zig.zonuses relative path to local zwasm (for testing) - •
zig build test— CW compiles and all tests pass with latest zwasm - •
bash test/e2e/run_e2e.sh— all e2e tests pass - •
bash test/portability/run_compat.sh— portability tests pass - •Run CW benchmarks if available, check no extreme regression
Phase 4: zwasm Tag + Push
- •Version gate: Verify
build.zig.zon.versionmatches the tag (e.g. tagv0.13.0→.version = "0.13.0"). If mismatched, update.version, commit, then proceed. - •Record full benchmark:
bash bench/record.sh --id=$ARGUMENTS --reason="Release $ARGUMENTS" - •Commit benchmark results:
git add bench/history.yaml && git commit -m "Record benchmark for $ARGUMENTS" - •Tag:
git tag $ARGUMENTS - •Push:
git push origin main --tags
Phase 5: ClojureWasm Tag + Push
- •Update
build.zig.zonto reference the new zwasm tag (GitHub URL + hash) - •
zig build test— verify it still works with the tagged version - •Record CW benchmark history if applicable
- •Commit:
git commit -am "Update zwasm to $ARGUMENTS" - •Tag CW (version may differ from zwasm)
- •Push:
git push origin main --tags