Repository navigation
ci(unittest-ordering): shard the protocols leg into internet and the rest (#1029) - #1032
Conversation
|
Cross-review verdict on Confirmed: the nine other cells collect identical module tuples, order included; the shards are disjoint and their union is exactly the old leg; both shards run directory modules first, root modules second; the new test fails 6/7 against Measured on CI, run 37341197811 — this supersedes the estimate in the comment. Against #1031's run an hour earlier (37334173854): Changes needed:
Measurement detail is on #1029. |
c79b1d7 to
b863da4
Compare
1280c89 to
149d29f
Compare
|
Cross-review verdict on Confirmed: the CI figures match the jobs API (27.78m; 8.20m / 7.58m; controls 6.20→6.40m and 6.03→6.13m). The counts match (51 modules, 1275 → 807, 468 lost, 255, 637). Every shifted Changes needed:
|
…rest (#1029) - The `protocols` cell took 27.8m on CI (30.4m in #1029) against the 45-minute cap. It is now `protocols/internet` and `protocols (rest)` (`protocols --exclude protocols/internet`): 8.2m and 7.6m on CI. - `util/run_unittest_leg.py` accepts a sub-path leg and a repeatable `--exclude`; the other nine cells run as before. - New `tests/project/test_unittest_ordering_shards.py` pins that the shards are disjoint, their union is the old leg, and other cells are plain. - `workflows.rst`: eleven matrix cells, and the `unit-tests.yml:<line>` citations shifted by the inserted comment. Narrow run of the new test only: 7 passed.
149d29f to
0186451
Compare
|
Cross-review verdict on
The previous head's run, 37345564685, was cancelled because the next push superseded it ( |
make pylint,make mypy,make isort) -- not run; workflow/CI-script change onlymake testpasses, and a test case covers the change -- narrow run of the new test only (7 passed);make testnot runWhat is the purpose of your pull request?
ci— workflows or build toolingDescription of your pull request and other information
Closes #1029. Splits the
protocolscell ofunittest-orderingintoprotocols/internetandprotocols (rest)(protocols --exclude protocols/internet).run_unittest_leg.pygains sub-path legs and a repeatable--exclude; the nine other cells run as before. Cap stays 45.Measured on CI:
protocols27.8m unsharded (run 37334173854, #1031) ->protocols/internet8.2m,protocols (rest)7.6m (run 37341197811, this PR). Controlsfoundation6.2 -> 6.4m,const6.0 -> 6.1m. Baseline is the same-hour 27.8m (matching controls), not #1029's 30.4m, its quiet-runner re-run after a window of cancelled runs.Cost (from
leg_moduleson the rebased tree; pairs are C(n,2)): 51 modules intests/protocols; 1275 pairs co-ran, 807 after (internet 66 + rest 741), 468 lost. The 255 module-then-root pairs all survive. Moving the 10 direct modules into internet would keep 637 and slow the slower cell. A third cell would save under 2 minutes (next slowest leg is 6.4m).Alternative,
timeout-minutes: 60: keeps all pairs but leaves a ~28-minute cell. Sharding was taken for the headroom the issue asked for.New
tests/project/test_unittest_ordering_shards.pypins disjoint shards, union = old leg, other cells plain; fails onmain(6 of 7).workflows.rstnow says eleven cells and itsunit-tests.yml:<line>citations are re-pointed.