Skip to content

Releases: quality-gates/mutarust

Mutarust 0.2.1

Choose a tag to compare

@jonbaldie jonbaldie released this 30 Sep 21:34
e212c49

Fixed

  • Workspace copies skip file-system entries that Mutarust cannot copy, such as Unix sockets and FIFOs. Mutation runs continue.

Release checks

  • Quality, Messrust, Security, and Mutation Testing passed on main at e212c4998fd106ab8bd12472ca2e4fdd61babb4c.
  • Docs build and deployment passed.
  • cargo package --locked passed. The package installed into a clean Cargo root. --version returned mutarust 0.2.1, and --help ran.
  • Published crate: mutarust 0.2.1 on crates.io.
  • Install check: cargo install mutarust --root /tmp/mutarust-verify --locked installed mutarust 0.2.1. The installed command passed --help and returned mutarust 0.2.1 for --version.

0.2.0

Choose a tag to compare

@jonbaldie jonbaldie released this 27 Sep 21:15
99dc1bb

An incompatible library release. The public MutationResult struct has a new required field. Command-line use does not change, except for the new checksum output.

Fixed

  • Each mutant result shows its blacklist checksum on a Blacklist checksum: line. The report.json mutant records include a blacklistChecksum field, and the HTML report shows the checksum with the mutant evidence. Before, no output showed the checksum that --blacklist accepts (#198).

Changed

  • MutationResult has a new public blacklist_checksum field. Code that builds a MutationResult value must set it.

Release checks

0.1.10

Choose a tag to compare

@jonbaldie jonbaldie released this 26 Sep 02:01
253b280

A compatible release. The public library interface does not change existing functions and exports the new report seam.

Added

  • A shared Report trait and Rendered enum for report generation.
  • write_all function to write every requested report and collect all write results.
  • selected_reports helper to resolve active report writers from configuration flags.
  • Exported report types: FullJsonReport, SummaryJsonReport, HtmlReport, AgenticJsonReport, GitlabReport, and GithubAnnotations.
  • run_for_test test execution helper in the execution module.

Changed

  • Report generation runs through the unified report seam. If a report write fails, the command still attempts all remaining reports before exit.
  • Escaped-mutant filtering and JSON serialization helpers are unified across report implementations.

Publication evidence

  • Required CI jobs green on PR #201 and main at ab38330 / 253b280 (Quality, Messrust, Security, Mutation Testing, Docs).
  • Package check: cargo package --locked passed; the package installed into a clean Cargo root; --version and --help answered.
  • Published crate: mutarust 0.1.10 on crates.io https://crates.io/crates/mutarust/0.1.10.
  • Installation evidence: cargo install mutarust --root /tmp/mutarust-verify --locked installed mutarust 0.1.10; --version and --help ran from that root.

0.1.9

Choose a tag to compare

@jonbaldie jonbaldie released this 20 Sep 22:01
406beab

A compatible fix release. The public library interface does not change.

Fixed

  • Source filters traverse associated items in impl and trait blocks for cfg and test ranges.
  • Associated items marked #[cfg(test)] count as unit tests for skip_without_test.
  • The yoke-derive dependency is pinned to 0.8.2. The 0.8.3 version needs a newer compiler than Rust 1.85 and does not record a minimum Rust version, so fresh downstream resolutions stopped building on 1.85.

Publication evidence

  • Required CI jobs green on main at 406beab (Quality, Messrust, Security, Mutation Testing, Docs).
  • Package check: cargo package --locked passed; the package installed into a clean Cargo root; --version and --help answered.
  • Published crate: mutarust 0.1.9 on crates.io.
  • Installation evidence: cargo install mutarust --root /tmp/mutarust-verify --locked installed mutarust 0.1.9; --version and --help ran from that root.

mutarust 0.1.8

Choose a tag to compare

@jonbaldie jonbaldie released this 13 Sep 22:35
733c1b2

A compatible fix release. The public library interface does not change.

Fixed

  • Coverage sources from a symlinked temporary path map back to the source workspace.
  • Clean suites and mutation workers isolate Cargo workspaces that share a layout root.
  • Mutation workers reset workspace files between mutants while retaining Cargo build artifacts.

Verification

  • Published crate: mutarust 0.1.8 on crates.io.
  • Clean registry install completed with cargo install mutarust --root /tmp/mutarust-verify --locked.
  • Verified mutarust --help and mutarust --version; the installed version is mutarust 0.1.8.

v0.1.7

Choose a tag to compare

@jonbaldie jonbaldie released this 10 Sep 21:39
fc8f9b5

A compatible fix release. The public library interface does not change.

Fixed

  • Isolating CARGO_HOME keeps the registry cache, git checkouts, and credentials.
  • A test binary that crashes marks a mutant as killed instead of skipped.
  • The clean suite and coverage collection timeouts scale with --timeout-coefficient.
  • Repeated mutation evidence adds location data to maintain distinct stable mutant IDs.

Verification

  • Release pull request:
  • main commit fc8f9b5 passed Quality, Messrust, Security, Mutation Testing, and Docs.
  • Published mutarust 0.1.7 to crates.io.
  • A clean cargo install mutarust --version 0.1.7 --locked succeeded. The installed command printed mutarust 0.1.7 and its help text.

Crate: https://crates.io/crates/mutarust/0.1.7
Release PR: #164

v0.1.6

Choose a tag to compare

@jonbaldie jonbaldie released this 09 Sep 21:49
2bd20bd

A compatible fix release. The public library interface does not change.

Fixed

  • expression/remove no longer plans a mutant whose applied text equals the source, such as replacing the true in a && true or the false in x || false. Phantom mutants no longer count as escaped with an empty diff, and mutants on different operands keep distinct stable mutant IDs.
  • // mutator-disable-func on the line before fn works after a doc comment.
  • --git-diff-lines resolves the Git repository from the target path.
  • --git-diff-lines uses the current branch when origin/HEAD is missing.
  • Git diff hunk bodies that start with plus prefixes parse as source content.

Verification

  • Release pull request:
  • main commit 2bd20bd passed Quality, Messrust, Security, Mutation Testing, and Docs.
  • Published mutarust 0.1.6 to crates.io.
  • A clean cargo install mutarust --version 0.1.6 --locked succeeded. The installed command printed mutarust 0.1.6 and its help text.

Crate: https://crates.io/crates/mutarust/0.1.6
Release PR: #156

v0.1.5

Choose a tag to compare

@jonbaldie jonbaldie released this 08 Sep 09:21
852b7d2

A compatible release. The public library interface does not change.

Added

  • Production Dockerfile and development dev.Dockerfile for container execution.
  • .dockerignore to exclude build artifacts, git repository data, and worktrees.

Verification

  • Release pull request:
  • main commit 852b7d2 passed Quality, Messrust, Security, Mutation Testing, and Docs.
  • Published mutarust 0.1.5 to crates.io.
  • A clean cargo install mutarust --locked succeeded. The installed command printed mutarust 0.1.5 and its help text.

Crate: https://crates.io/crates/mutarust/0.1.5
Release PR: #133

v0.1.4

Choose a tag to compare

@jonbaldie jonbaldie released this 03 Sep 15:21
55a705b

A compatible fix release. The public library interface does not change.

Fixed

  • Process management replaces fixed sleep duration loops with adaptive backoff poll intervals (#122).
  • Mutation candidate test and configuration overlap checks use binary search over sorted line ranges (#121).
  • Mutation evidence diff generation avoids full-file line allocations (#119).
  • Source candidate module discovery caches parsed ASTs to avoid multi-pass re-parsing (#120).
  • Per-test coverage collection reuses a single build directory across individual test runs (#117).
  • Parallel mutation workers share dependency build artifacts read-only with symbolic links instead of duplicating the full target directory (#118).

Verification

  • Fix and release pull requests:
  • main commit 55a705b passed Quality, Messrust, Security, Mutation Testing, and Docs.
  • Published mutarust 0.1.4 to crates.io.
  • A clean cargo install mutarust --version 0.1.4 --locked succeeded. The installed command printed mutarust 0.1.4 and its help text.

Crate: https://crates.io/crates/mutarust/0.1.4

v0.1.3

Choose a tag to compare

@jonbaldie jonbaldie released this 27 Aug 10:17
610eb6b

A compatible fix release. The public library interface does not change.

Changed

  • Mutation workers reuse clean workspace copies and their Cargo target directories.
  • Cargo mutation work stays within the configured worker and CPU limits.

Fixed

  • Planning reuses the Cargo workspace description for source candidates in the same package. This decreases dry-run planning time for large workspaces.
  • Source code now satisfies the current Clippy map_or_identity rule.

Verification

  • Fix and release pull request: #115
  • main commit 610eb6b passed Quality, Messrust, Security, Mutation Testing, and Docs.
  • Published mutarust 0.1.3 to crates.io.
  • A clean cargo install mutarust --version 0.1.3 --locked succeeded. The installed command printed mutarust 0.1.3 and its help text.

Crate: https://crates.io/crates/mutarust/0.1.3