Skip to content

CI: eight mutant shards, and a 30-minute timeout on each - #215

Merged
don-petry merged 2 commits into
mainfrom
ci/seventh-shard
Oct 20, 2026
Merged

don-petry merged 2 commits into
mainfrom
ci/seventh-shard

Conversation

@don-petry

@don-petry don-petry commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Why

The mutation check's six shards run close to their 25-minute job timeout, and one is now cut by it. Measured on the last day:

Run Shard times Cut
#212 at 02e79a0 14 to 24 min shard 1 of 6 cut at 25:00 on three attempts; attempt 2 had printed "166 of 166 mutants killed" 20 ms before the cut
#212 at beccc29 shard 1 passed in 24:47
#214 merge-group run 39335421251 14 to 24 min shard 3 of 6 cut at 25:00 having killed 136 of 168, none surviving; the PR was ejected and merged on the next attempt
#210 at f561b9a 17 to 22 min shards 0 to 2 cut at 25:00 (13 mutants that named no test; fixed in that PR)
main at d0e0105 (merge group) 15 to 24 min

A mutant that names no test runs the whole suite, with the simulation, before it is read as killed; about half the list does, and that is most of a shard's time. The workflow's own comment said to add a shard before the shards neared 15 minutes.

What changes

The matrix in .github/workflows/verify.yml gains two shards, eight in all of about 126 mutants each, and the mutants job's timeout goes from 25 to 30 minutes. MUTANTS_SHARD and MUTANTS_SHARDS already come from strategy.job-index and strategy.job-total, so nothing else in the workflow changes: the judging step and verify's needs are untouched, no permission or pin moves. examples/workflows/verify.yml and the first block of docs/standards/workflows.md carry the workflow word for word, and the head comment now states the measured times. Every mutant is in exactly one shard at any count from 1 to 12 (tests/test_tools.py::test_every_mutant_is_in_exactly_one_shard).

Part of #180. No decision record: nothing is decided, two numbers grow. The first head carried a seventh shard alone; the review's one major was that it leaves the slowest leg near 21 minutes against 25, past the comment's own rule, and the Maintainer chose eight shards (about 18:40 at the slowest) and a 30-minute timeout.

Reviews

A fresh-context Claude review with a security pass against docs/standards/workflows.md, and Muse Wonder Full, read the first head, 75b21ef. Findings, all folded into the one fix commit: seven shards is not enough by the comment's own rule (Claude's major; the Maintainer decided eight and a 30-minute timeout); the comment's figures were off (both: 1,008 mutants, not 960; the cut came 22 ms after the last kill, on different legs of three pull requests); the design still said six shards (both). Muse's minor that nothing holds the shard count itself is by design: decision 0026 keeps the count in the matrix, and every count partitions every mutant once.

Verify

make verify passed on a fresh git archive export with PATH=/usr/bin:/bin SIM_SEEDS=40 at both heads.

🤖 Generated with Claude Code

View guided diff Turn on auto-fix

don-petry and others added 2 commits October 19, 2026 18:42
Six shards ran 14 to 24 minutes against the 25-minute timeout, and one was cut at 25:00 on
three attempts of one pull request, once 20 ms after it had killed every mutant. The matrix gains
a seventh shard; the timeout and the judging step stay. The example and the standard carry the
workflow word for word, and the head comment states the measured times.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The review's one major: a seventh shard leaves the slowest leg near 21 minutes against 25, past
the comment's own rule. The Maintainer chose eight shards, about 126 mutants each and 18 to 19
minutes at the slowest, and a 30-minute timeout, so neither run-to-run variance nor the next
hundred mutants cuts a leg. The comment's figures are the measured ones, and the design no longer
counts the shards.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@don-petry
don-petry requested a review from a team as a code owner October 19, 2026 23:55
@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 41 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: combsmith/software-factory/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ddcece3c-b3b2-49b4-8339-1d430e0e20ac
📥 Commits

Reviewing files that changed from the base of the PR and between ba4e76e and 765f08d.

📒 Files selected for processing: 4
  • .github/workflows/verify.yml
  • docs/architecture/software-factory-design.md
  • docs/standards/workflows.md
  • examples/workflows/verify.yml
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T00:02:46.706364Z 765f08d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry
don-petry added this pull request to the merge queue Oct 20, 2026
Merged via the queue into main with commit d676f59 Oct 20, 2026
18 checks passed
@don-petry
don-petry deleted the ci/seventh-shard branch October 20, 2026 17:21
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.

1 participant