Document mutation-testing workflow contract tests - #206
Draft
leynos wants to merge 1 commit into
Draft
Conversation
Add a section to the developer's guide describing the informational mutation-testing caller workflow and the pytest contract that pins its shape: the uses: reference, permissions, concurrency, triggers, and with: block. Placed after the existing workflow-pins policy section since it documents that policy's concrete application here.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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.
Summary
Adds a
## Mutation-testing workflow contract testssection todocs/developers-guide.md, documenting the informational mutation-testingcaller workflow (
.github/workflows/mutation-testing.yml, which delegates toleynos/shared-actions/.github/workflows/mutation-cargo.yml) and the pytestcontract test at
tests/workflow_contracts/mutation_testing_test.pythatpins its shape.
The section is placed immediately after the existing "Workflow pins and
Dependabot" section, since it documents a concrete application of that
general shape-only pinning policy, rather than as a new detached top-level
section.
Details
crates/,with no root
src/; the caller mutates the whole workspace on manualdispatch, using
--test-workspace=trueso mutants also face dependentcrates' tests).
uses:pin is asserted shape-only (USES_REmatches
...@[0-9a-f]{40}, no hard-coded SHA — Dependabot bumps freely).The
with:block, by contrast, is asserted for exact equality against anEXPECTED_WITHdict, so any change topaths,exclude-globs, orextra-argsrequires an accompanying test edit. There is nopytestmark = pytest.mark.skipif(...)guard on the module — unlike amutmut-based Python repo, weaver's mutation runner is
cargo-mutants, sothere is no sandbox that omits
.github/.make test-workflow-contracts(existsin the
Makefileand simply invokesuv run --with 'pytest>=8' --with 'pyyaml>=6' pytest tests/workflow_contracts -q).docs/roadmap.mdanddocs/execplans/*only mention "mutation" in the sense of Weaver's owncode-mutation/refactor commands, not mutation-testing CI infrastructure.
No task was ticked or annotated.
docs/developers-guide.mdhas no internalsection-level table of contents to update. The top-level
docs/contents.mdindex already links the whole file (
- [Developer's guide] (developers-guide.md)), so no additional cross-link was needed.make markdownlintpasses (spelling gate, coveragegate, and
markdownlint-cli2all clean). Two-isespellings copied froma draft template (
summarising,serialises) were caught by the spellinggate and corrected to
-izeper this repository's oxendict policy beforethe gate passed.
File changed
docs/developers-guide.mdTest plan
make markdownlint(spelling + markdownlint-cli2) — passeschange per the task brief