Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0127
ADR-0127: The test runner stays a repo dev tool outside the integration release until codetools has an affected-set oracle
| field | value |
|---|---|
| Status | Accepted — Accepted (Mohamed, 2026-10-22: "ok agree") |
| Date | 2026-10-23 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0127-the-test-runner-stays-a-repo-dev-tool-outside-the-integration-release-until-codetools-has-an-affected-set-oracle.md — recorded on branch fix/ship-sanctioned-gate-pytest at 8c7031c9a, not yet on master |
| Wiki register entry | ADR-0127 (wiki status: Accepted) |
The record
Status: Accepted (Mohamed, 2026-10-22: "ok agree") · Date: 2026-10-23
Context
The integration release plan (wt-COMPONENTS packages/integration/increments/README.md, read
2026-10-22) has 25 increments, INT-01..INT-25, lifting 7,136 LOC of originals. INT-12..INT-22 move
scripts/run_tests.py, run_tests_streaming.py, run_tests_threadpool.py and
start_test_services.py into the integration package as orchestrata.run_tests and siblings.
Measured in the cut-over review (2026-10-22, read-only):
- INT-12..22 test tooling is 3,741 of the 7,136 LOC, which is 52% of the release.
- The frozen source commit e57782ea4 is stale for
run_tests.py: it has changed +566/−69 lines in 11 commits since then. A lift from the frozen tree would ship a runner that is already behind. ha_controller_cli(185 LOC, inside INT-22) is runtime code, not test tooling.- A separate thread proposed moving the tooling tests to codetools. That conflicts with INT-12..22 moving the same files into the integration package. The two had to be reconciled before either moved.
Decision (Mohamed, verbatim: "ok agree")
- INT-12..INT-21, and the
start_test_serviceshalf of INT-22, are dropped from the integration release.ha_controller_clistays in the release. scripts/run_tests.pystays in the repo as a developer tool. It moves to codetools only when codetools has an affected-set oracle that can replace--affected.- Two work items join the cut-over:
- AST roots fix A:
ast_pipeline.source_treesreads the declared roots. This landed as eddfc6668 onfix/ast-pipeline-declared-roots. - Affected-set cross-package dependents: a
contractschange must select the kernel and volks tests.
- AST roots fix A:
Alternatives rejected
- Lift the runner into
orchestrata.run_testsas planned. It doubles the release with test tooling, ships a stale copy of the runner, and puts dev tooling in the product. - Move the runner to codetools now. codetools has no affected-set oracle yet, so the push gate
would lose
--affected(RUL-040 named verdicts).
Consequences
- The integration release drops to about 3,400 LOC of runtime code.
- The push gate keeps running
scripts/run_tests.py --affectedfrom the repo until the codetools oracle exists. A later ADR records that move. - INT increments INT-12..21 are closed as "not in release". Whoever executes the increments plan must record this in it.
Provenance
- Mohamed, 2026-10-22, during the cut-over review, on the question of keeping the test runner out of the release: "ok agree". He then said "not an adr", and followed with "when we have finished understanding, researchimg and agreeing adr becomes a publish step for you" (see ADR-0130).
- He asked for publication on 2026-10-23: "review the decisions in the scratch pad, update them and publish them if they havent already been covered". A new ADR rather than an addendum, because the README forbids editing an accepted decision, and ADR-0113 records the L1 build, not the increments' content.
- Evidence: the session scratch notes (cut-over review findings) and the integration increments README in wt-COMPONENTS.
Related ADRs
Rulings cited
- RUL-040: RUL-040 — verification scope is measured at symbol granularity; a full-suite escalation is a bug
Specs cited
None (or no spec page exists for the ones named).