Step 6 of 8: Gradle plugin and opt-in gate mutationCrapCheck #7

Merged
mi merged 1 commits from step-6-gate into main 2026-10-01 16:37:08 +02:00
Owner

Step 6 of 8 from section 8.3 of the specification.

  • Gradle plugin de.hoennig.werkcrappit on top of info.solidsoft.pitest: werkcrappit-pit on PIT's tool classpath, output format added (keeping configured formats, else PIT's HTML), werkcrappit { … } options into PIT's pluginConfiguration (keeping other plugins' entries).
  • mutationCrapCheck depends on pitest, not part of check; judges the report with the shared Gate (in werkcrappit-pit): exact fraction, equality passes, analysis errors kept apart from limit violations, empty evaluation fails unless allowEmpty.
  • Functional tests in real builds: limits 4 / 3.3333 / 3.3334 on an exact 10/3 with PIT UP-TO-DATE, failing PIT never reaches the gate, unit + integration test source sets in one PIT run, two subprojects in parallel.
  • Found by the first functional run: the PIT plugin's task properties stay missing unless configured, and add/put on them keeps them missing — the plugin derives the values from the PIT extension (ADR 0005).
  • ADR 0005, feature 06; MC-019..MC-028, MC-030, MC-031 passing; MC-029 Groovy DSL open for step 8.

CI on werkator.javagil.de: green (89 s).

PR-doc: docs/prs/2026-10-01-PR#7-gradle-gate.md

🤖 Generated with Claude Code

Step 6 of 8 from section 8.3 of the specification. - Gradle plugin `de.hoennig.werkcrappit` on top of `info.solidsoft.pitest`: werkcrappit-pit on PIT's tool classpath, output format added (keeping configured formats, else PIT's HTML), `werkcrappit { … }` options into PIT's pluginConfiguration (keeping other plugins' entries). - `mutationCrapCheck` depends on `pitest`, not part of `check`; judges the report with the shared `Gate` (in werkcrappit-pit): exact fraction, equality passes, analysis errors kept apart from limit violations, empty evaluation fails unless `allowEmpty`. - Functional tests in real builds: limits 4 / 3.3333 / 3.3334 on an exact 10/3 with PIT UP-TO-DATE, failing PIT never reaches the gate, unit + integration test source sets in one PIT run, two subprojects in parallel. - Found by the first functional run: the PIT plugin's task properties stay *missing* unless configured, and add/put on them keeps them missing — the plugin derives the values from the PIT extension (ADR 0005). - ADR 0005, feature 06; MC-019..MC-028, MC-030, MC-031 passing; MC-029 Groovy DSL open for step 8. CI on werkator.javagil.de: green (89 s). PR-doc: `docs/prs/2026-10-01-PR#7-gradle-gate.md` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
mi added 1 commit 2026-10-01 16:23:50 +02:00
The plugin de.hoennig.werkcrappit puts werkcrappit-pit on PIT's tool
classpath, adds the output format and passes the werkcrappit options to
PIT, deriving both from the PIT extension, since adding to the PIT
plugin's missing task properties keeps them missing. mutationCrapCheck
depends on pitest, is not part of check, and judges the report with the
shared Gate: exact comparison, equality passes, analysis errors apart
from limit violations, empty evaluations fail unless allowed.

Functional tests: the gate across changed limits with PIT staying up to
date, a failing PIT run, unit plus integration test source sets, and two
subprojects built in parallel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi merged commit 78a2873932 into main 2026-10-01 16:37:08 +02:00
mi deleted branch step-6-gate 2026-10-01 16:37:08 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkcrappit#7