Skip to content

Releases: sourcefrog/cargo-mutants

v25.2.2

19 Jul 02:30
v25.2.2
Compare
Choose a tag to compare
  • Changed: The mutant name of "replace match guard" mutations now includes the original match guard, for example replace match guard path.path.is_ident("str") with true in type_replacements. Similarly, the "delete match arm" mutation includes the pattern of the arm, for example delete match arm BinOp::BitOr(_) in ....

  • Internal: Automatically publish cargo-mutants to crates.io from GitHub Actions.

v25.2.2-pre2

19 Jul 02:15
v25.2.2-pre2
Compare
Choose a tag to compare
v25.2.2-pre2 Pre-release
Pre-release
  • Release packages from a github environment for added security.

v25.2.2-pre0

19 Jul 01:16
v25.2.2-pre0
Compare
Choose a tag to compare
v25.2.2-pre0 Pre-release
Pre-release
  • Changed: The mutant name of "replace match guard" mutations now includes the original match guard, for example replace match guard path.path.is_ident("str") with true in type_replacements. Similarly, the "delete match arm" mutation includes the pattern of the arm, for example delete match arm BinOp::BitOr(_) in ....

v25.2.1

10 Jul 15:01
v25.2.1
Compare
Choose a tag to compare
  • Fixed: Updated to syn 2.0.104, which understands new Rust syntax including impl trait precise capturing.

v25.2.0

30 Jun 15:31
v25.2.0
Compare
Choose a tag to compare
  • New: gitignore config key in .cargo/mutants.toml to control whether .gitignore patterns are respected when copying source trees, corresponding to --gitignore.

  • Changed: The mutant name for mutations of match statements and guard expressions now includes the enclosing function name, for example replace match guard with true in find_path_attribute.

v25.1.0

05 Jun 14:41
v25.1.0
Compare
Choose a tag to compare
  • Changed: The --gitignore option now defaults to false, meaning .gitignore patterns are no longer respected when copying source trees by default. The /target directory is still excluded by default through explicit filtering. To restore the previous behavior, use --gitignore=true.

  • New: Mutate > to >= and < to <=.

  • Changed: Mutate &T to Box::leak(Box::new(...)), instead of a reference to a value, so that mutants aren't unviable due to returning references to temporary values.

  • New: --copy-target option allows copying the /target directory to build directories. By default, the target directory is excluded to avoid copying large build artifacts, but --copy-target=true can be used if tests depend on existing build artifacts.

  • New: Feature-related options can now be configured in .cargo/mutants.toml: features, all_features, and no_default_features. Command line arguments take precedence over config file settings for boolean options, while features from both sources are combined.

  • New: Produce a json schema for the config file with --emit-schema=config to support schema-guided editing. The schema has been proposed to SchemaStore so many editors should in future support it automatically.

  • New: The config file path can be specified with the --config option, overriding the default of .cargo/mutants.toml. (The pre-existing --no-config option turns it off.)

v25.0.1

09 Feb 14:56
Compare
Choose a tag to compare
  • New: Additional mutation patterns: delete match arms if there is a default arm, and replace if guards from match arms with true and false.

  • Changed: Show more type parameters in mutant names, like impl From<&str> for Foo rather than impl From for Foo.

  • Fixed: Support crates that use a non-default Cargo registry. Previously, cargo metadata failed with "registry index was not found."

  • Improved: Warn if --jobs is set higher than 8, which is likely to be too high.

  • Improved: Don't warn about expected/harmless exit codes from Nextest.

v25.0.1-pre3

05 Jan 17:31
v25.0.1-pre3
Compare
Choose a tag to compare
v25.0.1-pre3 Pre-release
Pre-release
  • Fixed: Build arm64 binaries for macOS.

v25.0.1-pre2

05 Jan 16:45
v25.0.1-pre2
Compare
Choose a tag to compare
v25.0.1-pre2 Pre-release
Pre-release
  • Fixed: Build binaries into releases.

cargo-mutants 25.0.0

04 Jan 16:39
Compare
Choose a tag to compare
  • Better estimation of time remaining, based on the time taken to test mutants so far, excluding the time for the baseline.

  • New: --copy-vcs option and config option will copy .git and other VCS directories, to accommodate trees whose tests depend on the contents or presence of the VCS directory.

  • New: Add .jj to the list of known VCS directories. These are excluded by default when copying the tree, but can be included using --copy-vcs=true.

  • Fixed: cargo --package options now include the version number of the targeted package, like [email protected]. This avoids cargo failing with an error that the package name is ambiguous in trees whose dependencies include multiple versions of one of the packages being tested.