Repository navigation
ci: add recurring mutation testing with a triage report - #73
Merged
Merged
Conversation
mutmut over the whole package, on main when src/ or tests/ change and monthly. Informational: the uploaded report lists every unkilled mutant with its diff so survivors can be triaged without a rerun. No threshold until the first report has been read. Local baseline at 0d2cca8: 2600 mutants, 1785 killed, 815 survived (68.7%), 5.5 min on 4 workers.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Adds
mutation.yml: mutmut 3.8.0 oversrc/secretscreen, on push to main whensrc/ortests/change, monthly on the 1st, on dispatch, and on PRs that change the mutation tooling.Informational, not a gate. It uploads
mutation-report/:summary.json: counts, score, per-file breakdownsurvivors.md: every unkilled mutant with its diff, grouped by file and function.github/scripts/mutation_report.pybuilds both in one process.mutmut showtakes about 2s per survivor, so it can't produce this at scale. The script reads mutmut internals, which is why mutmut is pinned in the workflow.tests/test_architecture.pyis excluded from mutation runs only. It reads the package source, which under mutmut is the instrumented copy that imports mutmut. Being static, it couldn't kill a mutant anyway.Local baseline at
0d2cca8: 2600 mutants, 1785 killed, 815 survived (68.7%), 5.5 min on 4 workers. A threshold gets decided after the first triage pass.🤖 Generated with Claude Code