Skip to content

Document mutation-testing workflow contract tests - #204

Draft
leynos wants to merge 1 commit into
mainfrom
docs/mutation-contract-tests
Draft

Document mutation-testing workflow contract tests#204
leynos wants to merge 1 commit into
mainfrom
docs/mutation-contract-tests

Conversation

@leynos

@leynos leynos commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a ## Mutation-testing workflow contract tests section to
docs/developers-guide.md, documenting the thin caller workflow at
.github/workflows/mutation-testing.yml
and the contract test that pins its shape.

Permutation: Python (mutmut), matching the shared brief's Permutation C,
reconciled to this repository's actual configuration:

  • The caller's with: block carries exactly three inputs — paths,
    module-prefix-strip, and python-version — no exclude-globs or
    extra-args. Only these three are documented.
  • The uses: pin follows the shape-only style: USES_RE in
    tests/test_mutation_workflow_contract.py asserts a full 40-character
    commit SHA without hard-coding the value, so Dependabot bumps it without a
    test edit.
  • The contract test module has no skipif guard — it always executes
    and reads the workflow file directly from the checkout. This differs from
    the template's assumption of a mutmut-sandbox self-skip, so the section
    states the actual behaviour rather than the assumed one.
  • Local run command, verified to pass (6 tests):
    uv run pytest tests/test_mutation_workflow_contract.py.

No table of contents exists in docs/developers-guide.md (the top of the
file is a list of accepted ADRs, not a section index), so no cross-link was
added.

No roadmap or execplan tracking applies: docs/roadmap.md and
docs/execplans/roadmap-normalization.md contain no mutation-testing task
to tick or annotate.

Docs lint

make markdownlint (markdownlint-cli2 + en-GB-oxendict spelling check via
typos): passes for the new section. One pre-existing MD049 emphasis-style
finding remains at line 862 (unrelated table caption, predates this change,
left untouched).

Test plan

  • uv run pytest tests/test_mutation_workflow_contract.py — 6 passed
  • make markdownlint — passes; no new findings from this change

Add a developers' guide section explaining the caller workflow in
.github/workflows/mutation-testing.yml, its three with: inputs, the
shape-only SHA pin, and what tests/test_mutation_workflow_contract.py
validates, including the local run command.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @leynos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 062e8806-46f3-415d-85c2-84c522c771ef

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/mutation-contract-tests

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

codescene-access[bot]

This comment was marked as outdated.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No quality gates enabled for this code.

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