Repository navigation
mutate: the scheduler is the package's, and held by tests - #18
Merged
Merged
Conversation
What runs a change's mutations - spread over its functions, built into one binary per package or alone, put to the tests that reach each line and to the importers', counted - was 330 lines of cmd/mutate, which has no tests, so the gate never broke its own concurrent half. It is RunAll and Spread in internal/mutate now; main keeps the flags, the plan and the reports. The lines it said as each outcome came go to the writer it is given, and an edit it could not build a way to ask is RunAll's error rather than an exit from inside a goroutine. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…exempt Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
aledbf
force-pushed
the
mutate/runner
branch
from
September 29, 2026 13:06
27b4527 to
3001095
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What runs a change's mutations was ~330 lines of
cmd/mutate/main.go, which has no tests, so the gate never broke its own concurrent half. It spreads the cap over functions, builds each package's edits into one binary or alone, asks the tests that reach each line and then the importers', and counts the results. That is nowmutate.RunAllandmutate.Spreadininternal/mutate/runner.go.mainkeeps the flags, the plan, and the cost and stale reports, and stays without tests, so the fixtures that use it as "a package with no tests" still hold.Behaviour:
io.WriterRunAll is given (os.Stdoutfrom main). Diagnostics stay on stderr.os.Exit(2)from inside a goroutine. It is now RunAll's error, and main exits 2 on it. The difference: the other edits finish first.New tests, each on a throwaway module:
built).mutate-exempton three lines, each a cost or a stderr note rather than an outcome: whether coverage is measured when nothing is built, and two stderr diagnostics.task test(coverage 62.8% → 71.2%),task lint: greentask mutate: 35 refused, 0 survived (this run is also the new code running itself)🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.