a clone without the install runs the suite green

465 tests loaded the stock interface off the install without declaring
it, and 25 addon tests assumed the install beside the corpus; each now
opens with `wow_data_or_skip!`. The gates run the workspace tests a
second time with `WOW_DATA=`, so a test that reads the install
undeclared fails at land instead of on a contributor's clone. The skip
log writes each line in one call so parallel tests do not interleave.

Verified: the workspace tests with `WOW_DATA=` in a checkout that has
the addon corpus pass 6972, fail 0, and log 1555 skips; on a fresh
clone of main before this change they failed 465.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sam
2026-09-23 19:10:41 +07:00
co-authored by Claude Opus 5.5
parent 23c14aaec1
commit 449324b7be
64 changed files with 503 additions and 2 deletions
+2 -1
View File
@@ -23,7 +23,8 @@ fork, and forks are welcome.
## How a change is judged
1. `scripts/gates.sh` is green: fmt, clippy with warnings denied, the workspace tests, the
1. `scripts/gates.sh` is green: fmt, clippy with warnings denied, the workspace tests (once
with the client data, once without, so a test that reads the install has to declare it), the
doc-link and render-pass lints, the player build with its own tests, and the engine boot
checks.
2. The reference fact is stated: what 1.12.1 does, and where that is known from (the client's
+2
View File
@@ -74,6 +74,8 @@ comment naming the reference fact and why we differ. Anything else is a fork.
`scripts/gates.sh`. It runs on the tree that lands, before it lands; it is memoized on the
tree. The tests that read the install or the addon corpus skip where the data is absent, and
the gate prints the count; where the data is, a skip is a failure (`BENILLA_REQUIRE_DATA=1`).
The workspace tests then run a second time with `WOW_DATA=` (no install), so a test that
reads the install without opening with `wow_data_or_skip!` fails here and not on a clone.
- **Per round**: `scripts/check.sh`, scoped to the changed crates and their dependents. Run each
gate once per round; `tee` the output to a file and grep the file.
- **A clean run** is the fourth gate: `scripts/smoke.sh`, a live login and logout against the