V1 release checklist
This is the release-control checklist for kit v1. It defines the public surface, the hidden/out surface, the gates that prove each claim, and the correctness issues that block release. Subsystem details live in the durable docs linked from ../DESIGN.md; this file is the cross-cutting ship/no-ship list.
V1 public surface
Ship these only when the validation gates below are hard-green: no unexpected failures and no unexpected skips in the selected lane.
- C11 toolchain:
cc,check,cpp,as,ld,build-exe,build-obj, staticbuild-lib, public compile/link APIs, runtime archive selection, and the C/asm object pipelines described in ../DRIVER.md. - Binutils/object tools:
ar,ranlib,strip,objcopy,objdump,nm,size,addr2line,disas, andmc. - Byte and support tools:
xxd,cmp,strings,hashplussha256sum/b2sum/crc32,compressplusgzip/gunzip/lz4/lz4c,cpio,image,gram, andsymbolize. - Distribution/build tools:
cas,pkg,build,install, andupdate, including release artifact update smoke coverage. - Optimization levels:
-O0and-O1.-O2is accepted for v1 only as an explicit alias for-O1; help, docs, and tests must say it is not a distinct optimization level and may change after v1. - ELF shared libraries: creating ELF DSOs and linking ELF executables against DSOs. Non-ELF shared-library creation is not a v1 feature.
- WebAssembly:
wasm32output, Wasm/WAT input,kit runruntime execution, and partial WASI Preview1. Multi-source Wasm is in scope only when all sources are provided together in onecc/build-*invocation. - JIT/debugger:
kit run,kit run --no-jit, andkit dbgonly for host/arch pairs that are proven by hard-green tests. Remove any unproven debugger platform claim before release.
Hidden or out of scope
- User-facing Toy language docs, help, and install exposure. Toy may remain as internal test coverage.
- User-facing
emudocs, help, install exposure, and release claims. - Non-ELF shared-library creation: Mach-O dylib creation, PE/COFF DLL creation,
and any equivalent
cc -shared,ld -shared, orbuild-lib -dynamicpath for non-ELF targets must reject clearly or be hidden. - Separate-object/static Wasm linking, wasm64, and complete WASI.
- Android/iOS runtime execution and self-host claims.
- Full-depth corpus/self-host portability as a v1 gate unless it is already green. Keep these lanes visible as deferred validation, not release blockers.
- File-based/AOT incremental linking claims. Internal JIT/linker mechanisms may stay documented only where they are real implementation details.
Unsupported optional features are not blockers unless docs, help, default install, or tests imply they are part of v1.
Target support matrix
Official v1 targets:
| Family | V1 targets | Release claim |
|---|---|---|
| Linux glibc | aa64, x64, rv64 | Compile, link, and execute where a runner is provisioned. |
| Linux musl | aa64, x64, rv64 | Compile, link, and execute where a runner is provisioned. |
| FreeBSD | aa64, x64, rv64 | Compile, link, and execute where a runner is provisioned. |
| Windows | aa64, x64 | Compile, link, and execute where a runner is provisioned. |
| macOS | aa64, x64 | Compile, link, and execute where a runner is available. |
| Android | aa64 | Cross/link target only. No v1 runtime or self-host claim. |
| iOS device | aa64 | Cross/link target only. No v1 runtime or self-host claim. |
| iOS simulator | aa64, x64 | Cross/link target only. No v1 runtime or self-host claim. |
| Freestanding | aa64, x64, rv64, rv32, arm32 | Cross/link/runtime-library target; execution only through explicit smoke lanes. |
Target names, selector grammar, provisioning, and deferred full-depth lanes are
owned by ../PORT.md and scripts/hosted.sh. If the matrix above
changes, update those sources and this checklist together.
Hard release gates
All command output for signoff should be captured under a release-check log directory, then inspected from the saved logs.
make test-tier1passes with no unexpected skip/fail.make test-cross DEPTH=coarsepasses for the full official target set.make test-cross DEPTH=smoke RUN=1passes for every target with an execution runner. Android and iOS are excluded from runtime assertions.- Deferred portability lanes are listed with owner/status:
make test-cross DEPTH=full,make test-selfhost DEPTH=smoke, andmake test-selfhost DEPTH=full. - Release-gate configuration has
emuand user-facing Toy hidden/disabled, while internal Toy tests remain available if still useful. - No public v1 doc or help text claims a feature outside this checklist.
Blocking correctness issues
These block v1 until fixed, removed from the public claim, or explicitly converted into a non-public unsupported feature.
- Fix the latent
kit rununinitialized-stack read. - Fix the c_target Wasm
memory.growbacking-store bug. - Fix aa64 optimized inline-asm staging panics or remove the affected optimized inline-asm claim.
- Fix x64 optimized inline-asm staging panics or remove the affected optimized inline-asm claim.
- Make
-O2behavior explicit everywhere: alias to-O1, not a separate optimizer level. - Hide or remove user-facing
emuexposure from README, driver help, install defaults, and release docs. - Hide Toy from user-facing docs, help, examples, and install defaults.
- Reject or hide non-ELF shared-library creation paths for
cc,ld, andbuild-lib; keep ELF DSO creation enabled and tested. - Update docs/help/tests for the Wasm boundary: same-invocation multi-source
wasm32is supported; separate-object/static Wasm linking, wasm64, and complete WASI are not. - Keep debugger support claims hard-green only. Any host/arch pair without proven breakpoints, stepping, backtrace, registers, variables, memory access, interrupt, and teardown is removed from the v1 claim.
Claim validation checklist
Documentation and help
- README,
kit --help, per-tool help, and install output match the V1 public surface exactly. - ../DRIVER.md documents
-O2as a temporary-O1alias, ELF-only shared-library creation, and hiddenemu/Toy policy. - ../LINK.md and ../OBJ.md distinguish ELF DSO creation from executable links against DSOs on all object formats.
- ../WASM.md states the
wasm32, WAT/Wasm input, runtime, partial-WASI, and same-invocation multi-source boundary. - ../BUILD_COORDINATOR.md,
../DISTRIBUTE.md, and release packaging docs cover
build,cas,pkg,install, andupdate. - ../KERNEL.md matches the shipped
imageandcpiotool surface. - ../DBG.md contains only debugger platforms that are hard-green.
Toolchain and linker
- C frontend, preprocessing, asm, object, archive, linker, runtime selection,
and JIT lanes are covered by
make test-tier1. - ELF DSO creation passes targeted tests for supported ELF targets.
- ELF executable links against DSOs pass targeted tests for supported ELF targets.
- Non-ELF shared-library creation rejects clearly in
cc,ld, andbuild-lib. -O2alias behavior is covered by driver/help tests and optimizer tests.- aa64, x64, rv64, rv32, and arm32 compile/link claims are covered by the hard release gates or explicitly scoped as freestanding smoke lanes.
WebAssembly and WASI
- Targeted
wasm32single-source C output tests pass. - Targeted same-invocation multi-source
wasm32tests pass. - Wasm/WAT input and
kit runexecution tests pass. - WASI Preview1 supported imports are listed and tested; unsupported calls fail with feature-naming diagnostics.
- Separate-object/static Wasm linking and wasm64 attempts reject clearly.
Utility and distribution tools
make test-driver-toolscoversxxd,cmp, byte-tool aliases,disas, andmcas applicable.make test-driver-cpiovalidatescpio.make test-driver-gramandmake test-gramvalidategram.make test-driver-cas,make test-driver-pkg, andmake test-distvalidate CAS/package distribution.make test-selfdistvalidatespkgplusupdateinstall/flip/rollback behavior.- Release artifact/update smoke passes after packaging, including
installlayout and default tool set. hash,compress,strings,objcopy,objdump,strip,ar,ranlib,nm,size,addr2line,symbolize, andimageeach have a hard-green driver or tier1 lane before being listed in release notes.
Final signoff
- Version, license files, third-party notices, support directory layout, runtime archives, headers, docs, and default install links are complete.
- Release notes contain a feature list and a separate limitations list that exactly matches this file.
- Every checked gate has a saved log path, command line, host triple, target selector, and pass/fail/skip summary.
- Every unchecked item is either fixed before tagging or removed from the v1 public claim.