Goal
Make the serialized/GIL PR-249 corpus gate bounded and easier to diagnose so one long threads-gil job cannot hold the entire required CI gate hostage without intermediate signal.
Current evidence
The full green gate for b89b1bd60ae4e5c0ab32980c8982621036caf361 has all sanitizer, fuzzer, docs, unit, audit, and no-GIL shard legs green, but threads-gil is still running alone. The workflow currently runs it as one matrix leg:
- name: threads-gil
cmd: zig build threads-testUnlike the TSan no-GIL corpus, this leg is not sharded, and GitHub does not expose useful in-progress logs for the job through gh api .../logs while it is still running.
Sketch
- Add a bounded timeout for the
threads-giljob that is high enough for normal CI variance but low enough to classify a hang promptly. - Consider sharding the serialized corpus the same way the TSan no-GIL corpus is sharded, or add progress output/checkpointing from
conformance/threads_test.zigso a stuck case is identifiable without waiting for final log archival. - Preserve the existing default
zig build threads-testlocal command for developer convenience unless a better replacement is clearly nicer.
Acceptance criteria
- A slow or hung serialized corpus case reports the exact file or shard that was active.
- The full CI gate no longer depends on one opaque long-tail
threads-gilleg. - Required-check names remain stable or are updated deliberately in repository settings/docs.