Skip to content

mutantkit 1.0.3

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Sep 00:18
· 11 commits to main since this release
9a6cec4

Highlights

  • SwiftPM projects: sources.include/exclude are now resolved against
    SwiftPM's own live build graph on every plan, instead of a static
    snapshot written once by init/setup. Previously, a target whose
    Package.swift declared an explicit sources: allow-list narrower than
    its own directory could get a mutant generated in a file that was never
    actually compiled — every one of those mutants then failed
    buildProductIdenticalToBaseline during run, discovered only after
    paying for the build. init/setup now write sources.include: ["**"]
    by default, meaning "no additional narrowing on top of SwiftPM's real
    compiled set"; a real glob still narrows further, exactly as before.
  • dry-run: a missing structured test report (a known SwiftPM
    non-parallel-mode limitation, not a failure) is now its own clearly
    separated warning line, instead of being folded into the
    Dry run passed (...) message where it read as a minor caveat on good
    news rather than a real reporting gap. Exit code unchanged.
  • The corrupt-lock error (.mutantkit/run-locks/*.lock unreadable,
    correctly refused rather than silently reclaimed) now names the exact,
    properly-quoted rm command to run once you've confirmed no run is
    active — previously it explained the refusal but not the recovery step.
  • Homebrew: brew install juntaki/mutantkit/mutantkit now installs from a
    precompiled bottle instead of building from source. This fixes a real
    install failure some users hit ("Your Xcode ... is too outdated") caused
    by Homebrew's generic source-build preflight, not by any actual Xcode
    requirement of this formula's own (it only copies files).
  • Added a project logo to the README.

Upgrade impact

For SwiftPM projects, a mutantkit.yml written by setup before this
release still works unchanged (a directory-shaped sources.include keeps
its old, literal meaning). Re-running setup on such a project will now
write sources.include: ["**"] instead, moving that project onto the
live-resolved behavior above.

Breaking changes

None.

What's Changed

  • plan: resolve SwiftPM sources.include live from SwiftPM's build graph instead of a static config snapshot by @juntaki in #60
  • dry-run/lock: separate the structured-results warning, name the lock recovery step; add README logo by @juntaki in #61
  • Release-Notes: add v1.0.3 by @juntaki in #62

Full Changelog: v1.0.2...v1.0.3