mutator-source input selects cran (default), r-universe, github, or
local (mutator is the package under test). When CRAN or r-universe cannot
provide the package, the workflow falls back to PRL-PRG/mutator at the tag
given by the new mutator-ref input, which defaults to the release the
workflow is versioned with; set mutator-fallback: false to fail instead. The
existing mutator-spec input still accepts a raw pak spec and now overrides
mutator-source; it no longer defaults to GitHub.This release addresses feedback received from CRAN during the review of the initial submission:
mutate_file(), so callers must
explicitly choose where mutant files are written.on.exit() in all
package test-runner and coverage code paths that temporarily change it.It also improves Windows support:
Sys.junction())
rather than symbolic links on Windows, which unlink() cannot remove; this
avoids leftover reparse points and the accompanying R CMD check warnings.tinytest support. A package with an inst/tinytest
directory is now auto-detected and its mutants are run in-process with
pkgload::load_all() and tinytest::run_test_dir(), without an install per
mutant, including coverage-guided test selection.strategy argument to mutate_package() to override test-framework
auto-detection. Accepted values are "auto" (the default), "testthat",
"tinytest", "tinytest-installed", and "installed".tinytest-installed strategy that installs each mutant and runs
tinytest::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.per_file coverage backend to forward the package's
tests/testthat.R harness arguments (notably any filter) to
testthat::test_dir(), matching the record_tests backend.record_tests coverage backend so it forwards the selected CRAN
mode consistently.imputesrcref from
its default branch, replacing the removed development-branch reference.