Files
mesh-lab/replays/merge-check.sh
T
jochen c4f57432e1
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
Check the Go replays in the Go toolchain, and register R301 and R302 (hq issues 301, 302)
The lab's check ran in the TypeScript toolchain, which holds no Go compiler,
so the replays register was never compiled before a merge. merge-check.sh now
declares replays/merge-check.sh as its Go part, which the build seat runs in
the Go toolchain: gofmt, go vet and the register's own tests. Both new
replays are proved: each fails on the commit before its fix and passes on it.
2026-10-08 00:13:46 +02:00

29 lines
1.3 KiB
Bash

#!/bin/sh
# mesh-check-toolchain: go
#
# The Go part of the lab's own check (novox/hq issue 302): the replays register and its prover, run by the
# build seat in the mesh's Go toolchain, its own container, because the lab's merge-check.sh declares it
# (`# mesh-check-also: go replays/merge-check.sh`) — and by hand, from anywhere:
# `sh replays/merge-check.sh`.
#
# 1. formatted and vetted — the register, the replays and the prover compile, tests included;
# 2. the tests that need nothing but Go and git: every replay registered whole (TestEveryReplayIsWhole),
# and the bed's reading of what a change touches.
#
# **Said, never passed silently**: the replays themselves raise containers and a bus of the release the mesh
# runs; this container holds no container runtime, so they are not run here. They run from the lab's main,
# reviewed, in the gate of every core change, and a change to one is proven by `go run ./cmd/prove` before
# it merges.
set -eu
cd "$(dirname "$0")"
unformatted=$(gofmt -l .)
if [ -n "$unformatted" ]; then
echo "not gofmt'd:"
echo "$unformatted"
exit 1
fi
go vet ./...
go test -count=1 -run '^(TestEveryReplayIsWhole|TestTheBedProvesWhatTheChangeTouches)$' .
echo "NOT RUN HERE: the replays themselves — they raise containers, and this container holds no container runtime"