You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6baaec6
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/design/rust-core/phase-1/as-built.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -355,14 +355,14 @@ Clean-container wheel smoke (E75, under E16).
355
355
356
356
The coverage check and the local gate's modes (E77; T1.19 merged in, E53(b), H26), each claim with its mechanism.
357
357
358
-
- `scripts/rust_core/coverage.py --check --checkpoint REV` reads the candidate (`--rev`, `HEAD`) from git through `ratchet.py`'s `Tree`, so nothing uncommitted counts: both scope manifests, validated against `scope.schema.json` (a failure is `schema:`), and every case under `contract/cases` (`read_cases`; a file missing, not JSON, nested past 64 levels (`MAX_DEPTH`, walked without recursion after parsing, so Python 3.14, whose parser reads 100,000 levels, refuses it as earlier versions do; the schema too, read once), without a case ID or status, with `paths`, `routes` or `cells` not lists of IDs, or a second case of one ID is `read:`, and the rules that need the corpus do not run). Rules 1 to 3 per manifest (`rule_1`, `rule_2_3`). Rule 4 (`rule_4`): each path and route a case names is a path of the Python manifest and each cell a cell of it; each case ID a manifest lists is a case; a committed `cases` list is empty or exactly the generated one (`generated`: the acceptance cases naming the path or cell, by ID; Java's empty). Rule 5 (`rule_5`): every S0 path of the Python manifest (`ACTIVE`) has an acceptance case; a manifest with no S0 path fails rather than passing empty. Rule 8 (`rule_8`), against the manifests at `--checkpoint` (a checkpoint without a manifest is a read failure; one without decisions.md authorizes nothing, rule 8 still running): a path or cell removed, a path moved to a later slice or a cell turned `unknown` fails unless a row of the checkpoint's decisions.md names the ID in backticks and its status, the last column, is the owner's approval (`owner_approved`: "approved by owner" and a date at its start, then nothing, a parenthesis or a note after "; " or ", ", no note withdrawing or qualifying it: not approved, rejected, revoked, withdrawn, superseded, to confirm; from fix round 1, `tests/test_contract_coverage_approval.py`). Exit 0, 1 on any problem, 2 on usage (`--checkpoint` is required). On this repository: 76 cases read, both S0 paths covered (9 acceptance cases for `query.validate/accept/any`, 12 for `query.validate/refuse/any`).
358
+
- `scripts/rust_core/coverage.py --check --checkpoint REV` reads the candidate (`--rev`, `HEAD`) from git through `ratchet.py`'s `Tree`, so nothing uncommitted counts: both scope manifests, validated against `scope.schema.json` (a failure is `schema:`), and every case under `contract/cases` (`read_cases`; a file missing, not JSON, nested past 64 levels (`MAX_DEPTH`, walked without recursion after parsing, so Python 3.14, whose parser reads 100,000 levels, refuses it as earlier versions do; the schema too, read once), without a case ID or status, with `paths`, `routes` or `cells` not lists of IDs, or a second case of one ID is `read:`, and the rules that need the corpus do not run). Rules 1 to 3 per manifest (`rule_1`, `rule_2_3`). Rule 4 (`rule_4`): each path and route a case names is a path of the Python manifest and each cell a cell of it; each case ID a manifest lists is a case; a committed `cases` list is empty or exactly the generated one (`generated`: the acceptance cases naming the path or cell, by ID; Java's empty). Rule 5 (`rule_5`): every S0 path of the Python manifest (`ACTIVE`) has an acceptance case; a manifest with no S0 path fails rather than passing empty. Rule 8 (`rule_8`), against the manifests at `--checkpoint` (a checkpoint without a manifest is a read failure; one without decisions.md authorizes nothing, rule 8 still running): a path or cell removed, a path moved to a later slice or a cell turned `unknown` fails unless a row of the checkpoint's decisions.md names the ID in backticks and its status, the last column, is the owner's approval (`owner_approved`: "approved by owner" and a date at its start, then nothing, a parenthesis or a note after "; " or ", ", no note withdrawing or qualifying it: not approved, rejected, revoked, withdrawn, superseded, to confirm; `ratchet.owner_approved`, which the ratchet's relaxations read alike; from fix round 1, `tests/test_contract_coverage_approval.py` and `tests/test_contract_ratchet_approval.py`). Exit 0, 1 on any problem, 2 on usage (`--checkpoint` is required). On this repository: 76 cases read, both S0 paths covered (9 acceptance cases for `query.validate/accept/any`, 12 for `query.validate/refuse/any`).
359
359
- The gate's `coverage` check runs the checkpoint's `coverage.py --check --repo <candidate> --rev <candidate> --checkpoint <checkpoint>` (gate.sh), so CI's `rust-test` and `contract-python` gates run it from this package's landing; this package's own candidate is judged by 8c06176's harness, which has none, and `tests/test_contract_coverage.py` runs it on the repository in CI's `engine` job.
360
360
-`gate.sh --only CHECK` (observations, ratchet, compare, l0 or coverage; anything else, or with `--locked`, or `l0` with `--no-l0`, exits 2): `want` runs the named check alone; under `--only`, `prepare` makes the observations inside the check that needs them, and `--only compare` takes the effective expectations from `ratchet.py effective`, with no ratchet check; the summary lists the one check and the last line says `--only CHECK: one check, not the gate`.
361
361
- `gate.sh --locked 1a|1b`: the default checks (the observations step always), then `runners` (the observations cover python-core, python-old and rust-host, read from each line's `identity.runner`), `l1` (`cargo test --workspace --locked` on the candidate), and for 1a `seeded` (pytest over `SEEDED`, then `selftest.py --no-clippy`) and `wheel-smoke` (the checkpoint's `wheel_smoke.py --container` in both lanes on `--wheel` and `--test-ops-wheel`, failing without them), for 1b `inventory` (the inventory's 40 cases, exactly, and `base.adventureworks` are acceptance cases; today 41 of 41 are diagnostic, so it fails). The table: check 1 is runners, observations, ratchet, compare, coverage and l1; 2 seeded; 3 wheel-smoke; 4 runners, observations, ratchet, compare, l1 and inventory; 5 observations, ratchet, compare and inventory; 6 l0 and every step run, each once; a step not run counts as failed; `--only ratchet` with no observations says it judged the tree alone. The evidence, `gate/<sha>.json` under `--evidence` (default `sdm-gate-evidence` in the clone's git directory; a directory that resolves, every symbolic link in its existing part followed, inside the worktree and outside the clone's git directory exits 2; from fix round 1, `contract/tests/test_gate_evidence_paths.py`), holds per half the checkpoint, base, the cell the Python runners observed in, each check's result and steps, each step's result and `passed`; checks 1 and 4, whose reference comparisons `compare.py` gates only in `ref-pandas3` (H1), fail outside it, `reported, not gated` (fix round 1); a run of the other half adds its own; an evidence file it cannot read fails the run by name.
362
362
- The modes are the checkpoint's: a candidate's `gate.sh` forwards them to its checkpoint's copy, so they run from this package's landing on; before it, the checkpoint's copy refuses them as unknown arguments.
363
363
- Carries: `tests/test_wheel_smoke.py`'s sync of `EXPECTED` reads async tests and `Test` classes' methods (as `Class::method`) and holds a parametrized test to its literal parameter count (`_defined_tests`, held by its own test on a file of each shape); `installation.md` says the NumPy 1.23.5 runtimes' path is pending validation.
364
364
- Bug fix (E49's depth probe): `compare.py`'s observation reader refuses a line nested past the parser, or past what the validator walks (Python 3.14 parses 100,000 levels), as a runner failure (`tests/test_contract_compare_depth.py`: 100,000 deep, as an array and an object, and 100,000 wide).
365
-
-`SEEDED`, locked check 2's suite: `test_gate_controls.py`, `test_payload_and_result_rules.py`, `test_capture.py`, `test_result_vectors.py`, `test_materialize_route.py`, `test_route_proof_seeds.py`, `test_contract_ratchet.py`, `test_contract_register.py`, `test_contract_coverage.py`, `test_contract_coverage_approval.py`, `test_contract_compare_depth.py`; `test_gate_modes.py` and `test_gate_evidence_paths.py` run `gate.sh --locked` and stay out.
365
+
-`SEEDED`, locked check 2's suite: `test_gate_controls.py`, `test_payload_and_result_rules.py`, `test_capture.py`, `test_result_vectors.py`, `test_materialize_route.py`, `test_route_proof_seeds.py`, `test_contract_ratchet.py`, `test_contract_ratchet_approval.py`, `test_contract_register.py`, `test_contract_coverage.py`, `test_contract_coverage_approval.py`, `test_contract_compare_depth.py`; `test_gate_modes.py` and `test_gate_evidence_paths.py` run `gate.sh --locked` and stay out.
366
366
- The tests, by the test author (`T1.15 tests:` commits): `tests/test_contract_coverage.py` (`--check` on the repository and on temporary repositories: each rule seeded, the owner's row at the checkpoint and the candidate's own, the E49 depth, width and retyping probes); `contract/tests/test_gate_modes.py` (through the real `gate.sh` on a temporary repository whose landing holds this harness and stubs for `cargo`, the L0 scripts, `wheel_smoke.py` and the suite: `--only` for each check, `--locked 1a` passing on the stubs and failing each check on its seeded defect, `--locked 1b` failing on `inventory` alone, the evidence's shape, halves, default directory and refusal inside the worktree, and the post-landing state passing); `contract/tests/test_route_proof_seeds.py`.
367
367
368
368
The checks of T1.19's former exit, each with the seeded fault that fails it (file::test:line at this package's candidate):
0 commit comments