src/: Zig sources. Inline unit tests live next to code; broader integration tests live undersrc/test/.demos/,web/,deps/,scripts/: Examples, web demo, vendored deps, and utilities. SeeREADME.mdfor current details.- Build outputs go to
zig-out/. Build steps and options are defined inbuild.zig.
- Bootstrap:
./scripts/setup.shinstalls the expected Zig and Bun if needed and runs an initialzig build. - Build:
TERM=dumb ZIG_NO_PROGRESS=1 zig build --summary newfor a clean, non-interactive log (TERM=dumbandZIG_NO_PROGRESSdisable terminal control sequences).ZIG_NO_PROGRESS=1 makemaps to this. - Test:
TERM=dumb ZIG_NO_PROGRESS=1 zig build test --summary newruns inline + integration tests.ZIG_NO_PROGRESS=1 make testmaps to this. - Run: after building, use
zig-out/bin/xtc(see--helpandREADME.mdfor flags and examples).
- Target Zig 0.15.1. Format with
zig fmtbefore committing. - Prefer small, focused modules and clear names; keep helpers in
src/lib/when shared. - Keep diffs tight and avoid drive‑by refactors in unrelated areas.
- For Wren code, avoid single-line control flow like
if (...) return x; use braces and newlines for all blocks.
- Integration tests belong in
src/test/as*.test.zigand should exercise end‑to‑end behavior. Keep them semantic and concise. - Unit‑level checks belong inline in modules using
test { ... }blocks.
- Use imperative, descriptive commit messages. Group related changes.
- For PRs: explain the rationale and user impact, link issues when relevant, and include a brief test plan. Ensure
zig buildandzig build testpass locally.
- Avoid committing secrets or machine‑specific settings. When in doubt, prefer what
README.mdandbuild.zigcurrently document.