uams-web / patches-pest-plugin-mutate
Patches UAMS-Web repositories apply to pestphp/pest-plugin-mutate
Package info
github.com/UAMS-Web/patches-pest-plugin-mutate
pkg:composer/uams-web/patches-pest-plugin-mutate
Requires
- pestphp/pest-plugin-mutate: 5.0.2
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-12 01:48:50 UTC
README
Patches that UAMS-Web repositories apply to pestphp/pest-plugin-mutate with cweagans/composer-patches 2.x. One package replaces the copies each repository carried, so a patch is changed once and retires everywhere in one release.
This package pins pestphp/pest-plugin-mutate to exactly 5.0.2. Every patch is written against that release.
Install
This package is read from GitHub with a vcs repository, not from Packagist. The consumer's root composer.json lists it (Composer reads repositories only from the root project):
"repositories": [ { "type": "vcs", "url": "https://github.com/UAMS-Web/patches-pest-plugin-mutate.git" } ]
An application requires it in require (the plugin applies a dependency's patches only from packages in composer.lock):
composer require --no-plugins uams-web/patches-pest-plugin-mutate:^1.0
A package that another repository installs requires it with --dev and lists the patch files in its own root patches.json. The full procedure, including composer patches-relock and composer patches-repatch, is the upstream-patch-lifecycle skill's Moving a consumer to the package.
Patch paths are relative to the consumer's root and start vendor/uams-web/patches-pest-plugin-mutate/patches/, so a consumer with a non-default vendor-dir is not covered.
Patches
Applied in this order, which is the order in composer.json. A later patch is cut against the output of the earlier ones, so none is reordered without re-cutting those after it.
-
pest-plugin-mutate-mutant-process-launch.patch: Launch each mutant child process so a run cannot score every mutant killed without executing one (temporary; see #2322) -
pest-plugin-mutate-annotation-parsing.patch: Stop three silent @pest-mutate-ignore parsing defects suppressing nothing or the wrong set (temporary; see #2327) -
pest-plugin-mutate-windows-mutant-child.patch: Let a mutant child on Windows run its tests and write files, so its failure is a real kill (temporary; see #2524) -
pest-plugin-mutate-drop-run-filter.patch: Drop the run's own --filter from each mutant child so a filtered run cannot score every mutant killed (temporary; see #2570) -
pest-plugin-mutate-windows-filter-length.patch: Widen or refuse a mutant child's filter that PCRE cannot compile, or that would pass cmd.exe's command-line limit on Windows, so it cannot score a kill without running a test (temporary; see #2578, #3114) -
pest-plugin-mutate-write-mutated-source.patch: Create the mutations directory and fail on a mutated source that cannot be written, so a run cannot score mutants it never applied (temporary; see #2812) -
pest-plugin-mutate-drop-parallel-runner-options.patch: Drop the parallel runner's options (--passthru-php, --processes and the rest) from each mutant child so a parallel run given one cannot score every mutant killed (temporary; see #2926, #2947) -
pest-plugin-mutate-function-defaults.patch: Select tests for a mutated scalar function default, so it is not scored without a test running it (temporary; see UAMS-Web/uams-2020#673) -
pest-plugin-mutate-isolated-processes.patch: Propagate a mutation into isolated test processes and reject a test report that ran no tests, so an isolated run cannot score a mutant killed without running a test (temporary; see UAMS-Web/UAMSWP-Logo-List#82) -
pest-plugin-mutate-class-constant-coverage.patch: Map a class constant mutant to the tests covering its containing class, since a constant initializer has no executable coverage line (temporary) -
pest-plugin-mutate-ignore-annotated-statement.patch: Skip a node whose own comment carries a matching @pest-mutate-ignore marker, including when the traverser still leaves that node (temporary)
Each description names the ticket that tracks the upstream fix, or the consumer ticket that moved the patch here where no upstream ticket exists.
Versioning
| Change | Release |
|---|---|
| A patch's content changes, same upstream pin | patch |
| A patch is added or retired, or the pin moves within the upstream major | minor |
| The pin moves to a new upstream major | major |
Verifying the set
Apply the eleven patches in order to the v5.0.2 tag of pestphp/pest-plugin-mutate with git apply. Applying pest-plugin-mutate-windows-filter-length.patch a second time must fail.
License
MIT, see LICENSE. The patches modify pestphp/pest-plugin-mutate, which is also MIT licensed.