Document mutation-testing workflow contract tests - #419
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughDocumentation updates clarify lint exceptions, reusable-workflow pinning guidance, mutation-testing workflow contracts, and BDD command-helper descriptions. ChangesDeveloper workflow documentation
Possibly related PRs
Suggested reviewers: Poem
Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (2 inconclusive)
✅ Passed checks (18 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Add a section to docs/developers-guide.md covering the mutation-testing caller workflow and its contract test, tests/workflow_contracts/mutation_testing_test.py. Contributors changing the caller's exclude-globs, extra-args, permissions, concurrency, or triggers need to know why the pull request fails and how to run the check locally with `make test-workflow-contracts`, without reverse engineering it from the test source.
Apply the repository Markdown formatter to the mutation-testing contract documentation and adjacent prose after rebasing onto `origin/main`.
596dbdc to
37139a3
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/developers-guide.md`:
- Around line 96-97: Update the filesystem-scope statement in the developers
guide to acknowledge every sanctioned exclusion configured in dylint.toml,
including build_script_build, integration-test crates, and the relevant
application crates, rather than implying access is limited to ambient_fs and
test_support.
- Line 147: Expand the “Mutation-testing workflow contract tests” section to
document running make fmt, make markdownlint, make nixie, make check-fmt, make
lint, and make test before merging, and instruct contributors to record each
command’s output.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 0cc0834a-1150-41f9-9b5d-7dfa161ed58e
📒 Files selected for processing (1)
docs/developers-guide.md
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/rstest-bdd(auto-detected) → reviewed against open PR#598docs/mutation-contract-testsinstead of the default branchleynos/ortho-config(auto-detected) → reviewed against open PR#392docs/mutation-contract-testsinstead of the default branchleynos/shared-actions(auto-detected) → reviewed against open PR#362docs/mutation-contract-testsinstead of the default branch
Describe every category excluded from `no_std_fs_operations` so the developer guide matches the live `dylint.toml` policy.
|
@coderabbitai review |
✅ Action performedReview finished.
|
Add a section-specific checklist that combines the authoritative general and documentation gates and requires contributors to record each result.
Summary
## Mutation-testing workflow contract testssection todocs/developers-guide.md, placed immediately after the existing### Workflow pins and Dependabotsubsection (the general shape-onlypinning policy this contract test follows). No mutation-testing-specific
section already existed, so this is a new top-level section rather than a
merge into one.
.github/workflows/mutation-testing.yml, the thin caller thatdelegates to
leynos/shared-actions/.github/workflows/mutation-cargo.yml,and its contract test,
tests/workflow_contracts/mutation_testing_test.py.Findings reconciled against the repo
uses:ref isthe correct path pinned to a 40-character lowercase-hex commit SHA (no
hard-coded
PINNED_SHAconstant), so Dependabot bumps freely with notest edit required. There is no
pytestmark = skipif(...)guard — thisis a Rust repo, so the test isn't run inside a mutmut sandbox that omits
.github/.with:inputs actually present: onlyexclude-globs(the three#[cfg(kani)]-gated modules undersrc/ir/, whichcargo-mutantscannot evaluate and would otherwise report as noisy survivors) and
extra-args: --all-features(matching themake testCI baseline).pathsis not set (uses the shared workflow's default).extra-crate-dirsis not set, and I deliberately did not documentit as if it were. I re-read
Cargo.toml's[workspace]block:ambient_fsis a genuine workspace member (members = ["ambient_fs"],default-members = [".", "ambient_fs"]), not a non-workspace companioncrate —
extra-crate-dirsis reserved (pershared-actions/docs/mutation-cargo-workflow.md) for crate directoriesoutside the workspace, so it doesn't apply here.
test_supportisexcluded from the workspace (
exclude = ["test_support"]) and thisworkflow does not mutate it. This is a deviation from the "companion
crate via extra-crate-dirs" framing I was initially briefed with; the
section documents the repo's real configuration instead.
make test-workflow-contracts(exists in theMakefile; runsuv run --with 'pytest>=8' --with 'pyyaml>=6' pytest tests/workflow_contracts -q).Ran it locally: 6 passed.
docs/roadmap.mdanddocs/execplans/; the only "mutation" hits in theroadmap concern OrthoConfig's non-interactive/mutation-safety metadata
and an unrelated
--dry-runpreview item, not this workflow.docs/developers-guide.mdhas notable of contents or index list to link into; the guide is a flat
sequence of
##/###sections.Docs-lint result
make markdownlint(spelling/typos +markdownlint-cli2): passed afterfixing two spelling misses the linter caught in my first draft
(
summarising→summarizing,serialises→serializes— this repo'stypos.tomlenforces Oxford-izespelling, consistent withanalyse/behaviourstaying as-is elsewhere in the same paragraph). Finalrun: 0 errors.
Per instructions, only the docs/markdown gates were run — not
make testor
make lint.File changed
docs/developers-guide.mdLatest review validation
make fmt: passed.make markdownlint: passed (34 checks, 0 Markdown errors).make nixie: passed (all Mermaid diagrams valid).References