All Versions
75
Latest Version
Avg Release Cycle
25 days
Latest Release
18 days ago

Changelog History
Page 1

  • v0.11.17 Changes

    November 12, 2022

    Add execution profiling via --profile. The output format is not stable yet, still this profile is very useful to differentiate mutant load time from target application load time.

    Improve worker process termination speed. Reduces pause before report print especially on high core count machines.

  • v0.11.16 Changes

    September 11, 2022

    Fix ignore patterns support for single node def nodes. Fix config merge support for ignore patterns.

  • v0.11.15 Changes

    September 05, 2022

    Fix to provide a well formed Mutant::Config::DEFAULT constant at all times. Primarily useful for custom 3rd party integrations that use mutants API directly.

  • v0.11.14 Changes

    July 31, 2022

    Change to improved AST matching performance. Mutant boot performance is positively affected mostly on larger projects with larger AST node count per file.

    Fix AST structure metadata issues.

  • v0.11.13 Changes

    June 27, 2022
    • ➕ Add support for org wide opensource licensing.
  • v0.11.12 Changes

    June 27, 2022

    Add user defined mutation filtering.

    Mutant will not emit mutations for AST patterns defined by the new mutation specific option ignore_patterns.

      mutation:
        ignore_patterns:
        - send{selector=log} # does no emit any mutation for `logger.log` or similar.
    

    The supported syntax is way more powerful than this simple example.

    Fix: [#1308] again.

    Properly normalize repository names on OSS license check.

    Deprecate mutation_timeout toplevel configuration key.

    Now use:

      mutation:
        timeout: 10.0
    
  • v0.11.11 Changes

    June 20, 2022

    Add support for minitest-0.5.16, and its srant initalization. Currently mutant randomizes selected minitest tests by default. AS this is also the minitest default for versions past 0.5.16 this should be a good enough behavior.

    Add mutation AST filtering. This allows to not emit mutations on user specified ASTS.

    Fix incomplete mutations for regexp capture groups. As an example, /(\w\d)/ now gets mutated to /(\W\d)/ and /(\w\D)/ instead of just the former case.

    Fix capture group -> passive group mutations which would not get properly generated in many cases. As an example, /(\w\d)/ would get mutated to /(?:\w)/ instead of /(?:\w\d)/ like it will now.

  • v0.11.10 Changes

    May 02, 2022

    Fix incomplete mutations for named regexp capture groups. As an example, /(?<name>\w\d)/ now gets mutated to /(?<name>\W\d)/ and /(?<name>\w\D)/ instead of just the former case.

    Add graceful but urgent exit on SIGINT.

  • v0.11.9 Changes

    May 01, 2022

    Add explicit mutation handler for xstr nodes.

    Fix crash with certain block argument edge cases such as foo { |(*)| }.

    Fix mutation from foo { |(a, b)| } to foo { |(_a, b)| } and foo { |(a, _b)| } instead of the less useful mutation to only foo { |_a| }.

    Add foo { |(a, b)| } -> foo { |a, b| } mutation.

    Remove useless loop { code } -> loop { nil } mutation.

  • v0.11.8 Changes

    April 25, 2022

    Add inline mutant disable configuration. This allows individual subjects to be marked as disbled directly in the code.

    Use:

      class Something
        # mutant:disable
        def some_method
        end
      end