refactor(tooling): T-1288 — planet-gen becomes reach atlas planet
The 30-file tree moves under atlas as its third rung (D-243), ten verbs fronting it. Each verb restates its module's options so `--help` describes something; tooling/test_planet_router.py hands every declared option to the module's own argparse and fails on drift, and now runs in make test-tooling. The 2026-09-02 half of this move had converted the top-level imports and the repo roots. Finishing it found what the half-move left: - Lazy in-function imports, and all of sol_data/, still named siblings bare. They resolved only through sys.path.insert hacks, so under reach the first globe render in generate, batch or sol-import would have raised ModuleNotFoundError. Qualified; the hacks are gone. - 247 print() calls and a stdout progress writer that fired once per 8 KB block. Report verbs (audit, quality) write through console.out, progress through console.event, and download progress is throttled to 10% steps so a job log is not tens of thousands of lines. - Every error exit raises ReachError with a fix. Two checks that could not fail: - batch --verify-determinism printed a warning and exited 0 on a mismatch. - import-provinces exited 0 with errors > 0. Both now raise. The 271-body bake is only safe to re-run because the first one holds. sol-import --body is action="append" in the module but the router took one value, so --body GJ0d --body GJ0e kept one. Now repeatable, and _flags repeats list options. test_conformance walked one level, so a nested group was reported as a verb missing @command and its ten verbs were never checked. It recurses now; proven by stripping @command from `planet quality` and watching it fail. Stray PNGs from the 2026-09-03 runaway router-test run are parked in .cache/t1288-stray-pngs/, not committed. Their reliefmaps differ from HEAD while the heightmap regenerated byte-identical — filed as T-1291. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -277,23 +277,26 @@ test-ipc-benchmark:
|
||||
VENV_PY := $(shell test -x .venv/bin/python && echo .venv/bin/python || echo python3)
|
||||
|
||||
# Tooling test gate (T-1066) — called by pre-push when tooling/ changed.
|
||||
# 1. planet-gen determinism guard (#963): simulating the same body twice must
|
||||
# 1. atlas planet determinism guard (#963): simulating the same body twice must
|
||||
# be bit-identical (guards the expensive 271-body heightmap bake).
|
||||
# Exit 2 = no testable body found — warn, don't block.
|
||||
# 2. import_economics --dry-run against the committed DB: full parse +
|
||||
# structural/coverage validation, no writes. Exit 2 = coverage-gate
|
||||
# warning (D-175) — tolerated, matching regen-db's treatment.
|
||||
test-tooling:
|
||||
@echo " [test-tooling] planet-gen determinism guard (#963)..."
|
||||
@rc=0; $(VENV_PY) tooling/planet-gen/test_sim_determinism.py || rc=$$?; \
|
||||
@echo " [test-tooling] atlas planet determinism guard (#963)..."
|
||||
@rc=0; $(VENV_PY) tooling/test_planet_determinism.py || rc=$$?; \
|
||||
if [ $$rc -eq 2 ]; then \
|
||||
echo " WARNING: determinism guard found no testable body (exit 2) — not blocking"; \
|
||||
elif [ $$rc -ne 0 ]; then \
|
||||
echo " FAIL: planet_simulation determinism drift (exit $$rc)"; exit $$rc; \
|
||||
fi
|
||||
@echo " [test-tooling] oasis ring-scaling pin (T-964, PR #210 review)..."
|
||||
@$(VENV_PY) tooling/planet-gen/test_oasis_ring_scaling.py 2> .cache/test-tooling-oasis-ring.log || \
|
||||
@$(VENV_PY) tooling/test_planet_oasis_rings.py 2> .cache/test-tooling-oasis-ring.log || \
|
||||
{ echo " FAIL: oasis ring scaling — log follows:"; cat .cache/test-tooling-oasis-ring.log; exit 1; }
|
||||
@echo " [test-tooling] reach atlas planet options vs module parsers (T-1288)..."
|
||||
@$(VENV_PY) tooling/test_planet_router.py 2> .cache/test-tooling-planet-router.log || \
|
||||
{ echo " FAIL: planet router drift — log follows:"; cat .cache/test-tooling-planet-router.log; exit 1; }
|
||||
@echo " [test-tooling] canvas-generation version gate units (T-1242)..."
|
||||
@mkdir -p .cache
|
||||
@python3 tooling/test_canvas_version_check.py 2> .cache/test-tooling-canvas-version.log || \
|
||||
|
||||
Reference in New Issue
Block a user