Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0129
ADR-0129: Installer tests that only read the install share one read-only install, an enforced exception to function-scoped fixtures
| field | value |
|---|---|
| Status | Accepted — Accepted (Mohamed, 2026-10-22: "1,2 and 3") |
| Date | 2026-10-23 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0129-installer-tests-that-only-read-the-install-share-one-read-only-install-an-enforced-exception-to-function-scoped-fixtures.md — recorded on branch fix/ship-sanctioned-gate-pytest at 8c7031c9a, not yet on master |
| Wiki register entry | ADR-0129 (wiki status: Accepted) |
The record
Status: Accepted (Mohamed, 2026-10-22: "1,2 and 3") · Date: 2026-10-23
Context
The orchestrata-tools installer tests (deploy/install-tools.sh) used an installed fixture with
function scope. Eight of the eleven tests each ran the full installer, about 22 s per run (venv about
3 s, build about 6 s, verification about 12.6 s; phases measured 2026-10-22). Worker VERIFY runs hit
the 300 s cap on the installer suite alone.
The test-isolation rule gives every test its own state, which is why function scope is the default.
Decision (Mohamed, verbatim: "1,2 and 3")
- The tests that only read the install share one install, as an exception to the function-scope rule. The shared install is enforced read-only: a test that writes into it fails.
- Make the installer fast. Measure its phases, and reuse the venv when the lock is unchanged. The measurement showed little to gain from reusing the venv (3 s), so the installer prints its phase times instead.
- Run only the affected tests for the change at hand.
Alternatives rejected
- Keep function scope. It costs eight full installs, about 3 minutes, on every run.
- A session-scoped install the tests may write to. The tests leak into each other, which breaks the test-isolation rule.
Consequences
- The installer suite runs one install for its readers. Tests that change the install keep their own function-scoped install.
- The read-only enforcement is part of the fixture. Removing it reopens the leak.
- Implemented as orchestrata-tools 7309a3488 ("tools installer: tests share one read-only install;
phases print their time") in wt-TOOLS-FAST and deployed to
/opt/orchestrata-tools. As of 2026-10-23 that commit is on no remote branch.
Provenance
Mohamed's ruling on 2026-10-22 on the slow installer tests: "1,2 and 3". (1) and (2) were branched off the bin/ast change (b68276bfd) after it landed. Phase timings come from the worker restart with the better brief, recorded in the session scratch notes.
Related ADRs
No other ADR is named in this record.
Rulings cited
None.
Specs cited
None (or no spec page exists for the ones named).