Adopt the validation-rules discipline that every public type is either validated or excluded, enforced mechanically rather than by review. A new gate enumerates the public surface from the compiler symbol graph and fails the build, naming the type, if any public type is missing from the coverage manifest or any manifest entry is no longer public. scripts/validation-coverage.tsv classifies all 58 public types: the value models with the mapping-key-uniqueness runtime invariant are validated, and the namespaces, closed sum types, data-transfer values, error types, and engine machinery are excluded with a one-line reason each. The gate runs in check-all.sh and CI; a planted unclassified type was confirmed to fail it. This is the coverage-first phase of moving the validation layer to the type-directed Validation idiom; the framework backing the validated entries, the de-duplication of the Tagged validator machinery, and the exhaustive tests follow.
28 lines
941 B
Bash
Executable File
28 lines
941 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Full local verification gate for PureYAML.
|
|
#
|
|
# Runs the checks required before completion, including the Claw Mini Linux
|
|
# check when executed from macOS and the WASM SDK build check.
|
|
|
|
set -euo pipefail
|
|
|
|
run_gate() {
|
|
name="$1"
|
|
shift
|
|
printf '\n==> %s\n' "$name"
|
|
"$@"
|
|
}
|
|
|
|
run_gate "style" bash scripts/check-style.sh
|
|
run_gate "namespacing" bash scripts/check-namespacing.sh
|
|
run_gate "validation coverage" bash scripts/check-validation-coverage.sh
|
|
run_gate "forbidden patterns" bash scripts/check-forbidden-patterns.sh
|
|
run_gate "changelog" bash scripts/check-changelog-touched.sh
|
|
run_gate "roadmap" bash scripts/check-roadmap.sh
|
|
run_gate "swiftformat" swiftformat . --config .swiftformat --lint
|
|
run_gate "swiftlint" swiftlint --config .swiftlint.yml --strict
|
|
run_gate "swift build" swift build
|
|
run_gate "swift test" swift test
|
|
run_gate "linux" bash scripts/check-linux.sh
|
|
run_gate "wasm" bash scripts/check-wasm.sh
|