Documentation
¶
Overview ¶
Package main is the release-time bench aggregator.
It consumes the per-scenario artifacts produced by testbed/bench/run.sh (one run directory per scenario, each containing leak_gate.json, ghz_*.json, and a pre-rendered report.md) and emits a single fixed-format Markdown document suitable for appending to a GitHub Release body.
The output schema is intentionally stable across releases so that readers can diff bench numbers tag-over-tag without parsing pain:
# Lantern benchmark — <tag> - Commit: <sha> - Runner: <runner> - Captured: <UTC timestamp> ## Summary | scenario | leak gate | rps | p99 (ms) | non-OK | | ... | ## <scenario> <per-scenario report.md, with H1 demoted to H3 so it nests cleanly>
Invocation:
go run ./testbed/bench/release \
-tag v1.2.3 -commit abc1234 -runner linux/amd64 \
-captured 20260604T120000Z \
-out bench-report.md \
smoke_write_heavy=path/to/out/smoke_write_heavy/<ts> \
smoke_read_heavy=path/to/out/smoke_read_heavy/<ts> \
...
Missing per-scenario artifacts do NOT abort the run — the scenario is rendered as a `(failed)` row in the summary so a single noisy scenario does not prevent the rest of the report from shipping. The driver script (release.sh) decides whether a fail row should fail the CI job.