Changelog
Source:NEWS.md
mutator 0.2.2
- The reusable GitHub Actions workflow now installs mutator from CRAN by default, instead of from the tip of the GitHub repository. A new
mutator-sourceinput selectscran(default),r-universe,github, orlocal(mutator is the package under test). When CRAN or r-universe cannot provide the package, the workflow falls back toPRL-PRG/mutatorat the tag given by the newmutator-refinput, which defaults to the release the workflow is versioned with; setmutator-fallback: falseto fail instead. The existingmutator-specinput still accepts a raw pak spec and now overridesmutator-source; it no longer defaults to GitHub.
mutator 0.2.1
CRAN release: 2026-08-02
This release addresses feedback received from CRAN during the review of the initial submission:
- Removed the default output directory from
mutate_file(), so callers must explicitly choose where mutant files are written. - Restored the caller’s working directory immediately with
on.exit()in all package test-runner and coverage code paths that temporarily change it.
It also improves Windows support:
- Mutant package copies now link directories with junctions (
Sys.junction()) rather than symbolic links on Windows, whichunlink()cannot remove; this avoids leftover reparse points and the accompanyingR CMD checkwarnings.
mutator 0.2.0
- Added first-class
tinytestsupport. A package with aninst/tinytestdirectory is now auto-detected and its mutants are run in-process withpkgload::load_all()andtinytest::run_test_dir(), without an install per mutant, including coverage-guided test selection. - Added a
strategyargument tomutate_package()to override test-framework auto-detection. Accepted values are"auto"(the default),"testthat","tinytest","tinytest-installed", and"installed". - Added a
tinytest-installedstrategy that installs each mutant and runstinytest::test_package(). It is a fallback for packages whose in-process load diverges from an installed copy and unlike the generic installed-tests fallback it still supports coverage-guided selection. - Reworked the README and configuration vignette, documenting how the test strategy is selected and when to override it.
- Fixed the
per_filecoverage backend to forward the package’stests/testthat.Rharness arguments (notably anyfilter) totestthat::test_dir(), matching therecord_testsbackend.
mutator 0.1.1
- Fixed coverage-guided baseline runs for packages with native code by compiling native sources before mutant execution.
- Fixed the
record_testscoverage backend so it forwards the selected CRAN mode consistently. - Updated the reusable GitHub Actions workflow to install
imputesrcreffrom its default branch, replacing the removed development-branch reference. - Expanded mutation-system coverage across execution modes and raised mutator’s own test coverage above 90% without adding slow integration tests.