Repository navigation
Conversation
The file was last written at #547, before #569 and about 200 new tests, and group 3 has run lighter than the other two since: 34.8 s against 39.6 and 42.0 s at -n 4 on a warm CI bench. Costed by fresh durations, the old file's slowest third is 4.8% over an even split and the new one cuts all three at 73.6 s serial, roughly 1.5-3 s off the slowest shard. Recorded on a CI runner (run 35890081094) rather than a laptop: serially, so no xdist worker's first test absorbs the session fixture setup; under coverage, as the shards run; and with --clean-durations so removed tests drop out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @Babissimo's task in 1m 29s —— View job Claude's review of #591
This is a data-only refresh of
Not independently verified: I didn't install backend dependencies to run No issues found. Nothing to fix here. |
PR #591's serially recorded durations cut the three groups evenly on paper, but its first run still had group 3 lightest. Serial durations miss contention: the runners have two cores with two threads each, so CPU-bound tests slow under four workers and I/O-bound ones do not. This records durations on the xdist controller under -n 4, then times each group as cut by the current, serial and parallel files on the same runner, six times, rotated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Closing: measured, this file does not deliver the balance the description predicts. Paired on the same runner (bench runs 35896688206 and 35898020598, branch
Serial durations miss contention. The runners have two cores with two threads each, so CPU-bound tests slow under four workers and I/O-bound ones do not, and a split that is even serially stays uneven at The Separately, ONBOARDING says |
Refreshes
backend/.test_durations, which decides where pytest-split cuts the backend suite into CI's three shards.ClickUp: Cut the backend suite's per-process fixed cost.
Why
The file was last written at #547, before #569 and about 200 new tests. Group 3 has run lighter than the other two since then: on a warm bench (run 35881134795) the three groups took 39.6, 42.0 and 34.8 s at
-n 4, and CI's pytest steps show the same order.How it was recorded
On a CI runner (run 35890081094, branch
bench/shard-workers, on 1a88f7b): serially, so no xdist worker's first test absorbs the session's fixture setup; under coverage, as the shards run; with--clean-durations, so removed tests drop out. 4,862 entries, 221 s in all. The old file summed to 529 s, recorded under different conditions.Expected effect
Costing today's collection with the new durations, the old file's slowest third is 4.8% over an even split (76.1 / 77.2 / 67.6 s serial); the new file cuts all three at 73.6 s. On CI's ~25 s of divisible test time per shard, that is roughly 1.5–3 s off the slowest shard. Small, and it costs nothing at run time.
A new grouping also changes which tests share a process, which this suite is sensitive to (see the comment above the pytest step in
ci.yml), so each of the three new groups was run locally exactly as CI runs it.Verification
-n 4 --dist worksteal --splits 3 --group k, as the shards do, exited 0 (1,509 / 1,263 / 2,090 tests).pre-commit run --all-filesclean./code-review: the diff is 9,500 lines of recorded durations, so it was checked by the properties above instead.🤖 Generated with Claude Code