Skip to content

Parallelize the verify gate across modules and run the test suite only once - #14

Merged
nikitakarpei merged 2 commits into
mainfrom
perf/single-verify-suite-run
Aug 15, 2026
Merged

Parallelize the verify gate across modules and run the test suite only once#14
nikitakarpei merged 2 commits into
mainfrom
perf/single-verify-suite-run

Conversation

@nikitakarpei

@nikitakarpei nikitakarpei commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Closes #11

Turned out that build/compile cache already gives us diff-scoping. Time comes mostly from sequential steps execution so now each Go module step verifies multiple modules in parallel. -count=1 argument used by coverage checking step found to be expensive too but its removal blocked by a bug in Go which is milestoned for Go 1.27 at the time of writing.

nikitakarpei and others added 2 commits August 16, 2026 01:02
Every Go module loop ran serially, leaving all but one core idle. Warm
verify took 86s on a sixteen-core machine.

Fan for_each_go out over xargs -P, and lift the per-module coverage gate
into tools/gate-coverage so its awk survives the xargs quoting.
golangci-lint takes a global lock, so lint-go now passes
--allow-parallel-runners; a per-module GOLANGCI_LINT_CACHE does not lift
that lock.

The gate now prints on failure what it used to discard, and stays silent
otherwise. The e2e, Python and markdown loops stay serial.

The -count=1 on the coverage runs guards golang/go#74873 and carries a
comment saying so, approved for this change against the comment rule: the
flag reads as cargo cult without it and was already proposed for removal
once.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
verify depended on both test and cover-check. cover-check runs the same
suite under the same -race flag, plus coverage instrumentation, so the
suite ran start to finish twice on every gate.

Drop test from the verify chain. The target stays for the inner loop,
where an uninstrumented run is cheaper and its results cache.

This needs the failure output that cover-check gained when the gate moved
into tools/gate-coverage, so it cannot land before that change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@nikitakarpei
nikitakarpei merged commit 2a1a651 into main Aug 15, 2026
12 checks passed
@nikitakarpei
nikitakarpei deleted the perf/single-verify-suite-run branch August 15, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

make verify verifies whole codebase instead of changed diff

1 participant