mutant 0.8.24 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +3 -3
- data/Changelog.md +14 -654
- data/Gemfile +13 -0
- data/Gemfile.lock +59 -64
- data/LICENSE +271 -20
- data/README.md +73 -140
- data/Rakefile +0 -21
- data/bin/mutant +7 -2
- data/config/reek.yml +2 -1
- data/config/rubocop.yml +5 -9
- data/docs/incremental.md +76 -0
- data/docs/known-problems.md +0 -14
- data/docs/mutant-minitest.md +1 -1
- data/docs/mutant-rspec.md +2 -24
- data/lib/mutant.rb +45 -53
- data/lib/mutant/ast/nodes.rb +0 -2
- data/lib/mutant/ast/types.rb +1 -117
- data/lib/mutant/base.rb +192 -0
- data/lib/mutant/bootstrap.rb +145 -0
- data/lib/mutant/cli.rb +68 -54
- data/lib/mutant/config.rb +119 -6
- data/lib/mutant/env.rb +94 -8
- data/lib/mutant/expression.rb +6 -1
- data/lib/mutant/expression/parser.rb +9 -31
- data/lib/mutant/integration.rb +64 -36
- data/lib/mutant/isolation.rb +16 -1
- data/lib/mutant/isolation/fork.rb +105 -40
- data/lib/mutant/license.rb +34 -0
- data/lib/mutant/license/subscription.rb +47 -0
- data/lib/mutant/license/subscription/commercial.rb +57 -0
- data/lib/mutant/license/subscription/opensource.rb +77 -0
- data/lib/mutant/loader.rb +27 -4
- data/lib/mutant/matcher.rb +48 -1
- data/lib/mutant/matcher/chain.rb +1 -1
- data/lib/mutant/matcher/config.rb +0 -2
- data/lib/mutant/matcher/filter.rb +1 -1
- data/lib/mutant/matcher/method.rb +11 -7
- data/lib/mutant/matcher/methods.rb +1 -1
- data/lib/mutant/matcher/namespace.rb +1 -1
- data/lib/mutant/matcher/null.rb +1 -1
- data/lib/mutant/matcher/scope.rb +1 -1
- data/lib/mutant/meta/example/dsl.rb +0 -8
- data/lib/mutant/mutation.rb +1 -2
- data/lib/mutant/mutator/node.rb +2 -9
- data/lib/mutant/mutator/node/arguments.rb +1 -1
- data/lib/mutant/mutator/node/class.rb +0 -8
- data/lib/mutant/mutator/node/define.rb +0 -12
- data/lib/mutant/mutator/node/generic.rb +30 -44
- data/lib/mutant/mutator/node/index.rb +4 -4
- data/lib/mutant/mutator/node/literal/regex.rb +0 -39
- data/lib/mutant/mutator/node/send.rb +13 -12
- data/lib/mutant/parallel.rb +61 -40
- data/lib/mutant/parallel/driver.rb +59 -0
- data/lib/mutant/parallel/source.rb +6 -2
- data/lib/mutant/parallel/worker.rb +63 -45
- data/lib/mutant/range.rb +15 -0
- data/lib/mutant/reporter/cli.rb +5 -11
- data/lib/mutant/reporter/cli/format.rb +3 -46
- data/lib/mutant/reporter/cli/printer/config.rb +5 -6
- data/lib/mutant/reporter/cli/printer/env.rb +40 -0
- data/lib/mutant/reporter/cli/printer/env_progress.rb +13 -17
- data/lib/mutant/reporter/cli/printer/isolation_result.rb +17 -3
- data/lib/mutant/reporter/cli/printer/mutation_result.rb +2 -3
- data/lib/mutant/reporter/cli/printer/status_progressive.rb +19 -10
- data/lib/mutant/repository.rb +0 -65
- data/lib/mutant/repository/diff.rb +104 -0
- data/lib/mutant/repository/diff/ranges.rb +52 -0
- data/lib/mutant/result.rb +16 -7
- data/lib/mutant/runner.rb +38 -47
- data/lib/mutant/runner/sink.rb +1 -1
- data/lib/mutant/selector/null.rb +19 -0
- data/lib/mutant/subject.rb +3 -1
- data/lib/mutant/subject/method/instance.rb +3 -1
- data/lib/mutant/transform.rb +511 -0
- data/lib/mutant/variable.rb +282 -0
- data/lib/mutant/version.rb +1 -1
- data/lib/mutant/warnings.rb +113 -0
- data/meta/case.rb +1 -0
- data/meta/class.rb +0 -9
- data/meta/def.rb +1 -26
- data/meta/regexp.rb +10 -20
- data/meta/send.rb +14 -46
- data/mutant-minitest.gemspec +1 -1
- data/mutant-rspec.gemspec +2 -2
- data/mutant.gemspec +15 -16
- data/mutant.yml +6 -0
- data/spec/integration/mutant/isolation/fork_spec.rb +22 -5
- data/spec/integration/mutant/minitest_spec.rb +3 -2
- data/spec/integration/mutant/rspec_spec.rb +4 -3
- data/spec/integrations.yml +16 -13
- data/spec/shared/base_behavior.rb +45 -0
- data/spec/shared/framework_integration_behavior.rb +43 -14
- data/spec/spec_helper.rb +21 -17
- data/spec/support/corpus.rb +56 -95
- data/spec/support/shared_context.rb +37 -14
- data/spec/support/xspec.rb +7 -3
- data/spec/unit/mutant/bootstrap_spec.rb +216 -0
- data/spec/unit/mutant/cli_spec.rb +173 -117
- data/spec/unit/mutant/config_spec.rb +126 -0
- data/spec/unit/mutant/either_spec.rb +247 -0
- data/spec/unit/mutant/env_spec.rb +162 -40
- data/spec/unit/mutant/expression/method_spec.rb +16 -0
- data/spec/unit/mutant/expression/parser_spec.rb +29 -33
- data/spec/unit/mutant/expression_spec.rb +5 -7
- data/spec/unit/mutant/integration_spec.rb +100 -9
- data/spec/unit/mutant/isolation/fork_spec.rb +125 -67
- data/spec/unit/mutant/isolation/result_spec.rb +33 -1
- data/spec/unit/mutant/license_spec.rb +257 -0
- data/spec/unit/mutant/loader_spec.rb +50 -11
- data/spec/unit/mutant/matcher/compiler_spec.rb +0 -78
- data/spec/unit/mutant/matcher/method/instance_spec.rb +55 -11
- data/spec/unit/mutant/matcher/method/singleton_spec.rb +12 -2
- data/spec/unit/mutant/matcher_spec.rb +102 -0
- data/spec/unit/mutant/maybe_spec.rb +60 -0
- data/spec/unit/mutant/meta/example/dsl_spec.rb +1 -17
- data/spec/unit/mutant/mutation_spec.rb +13 -6
- data/spec/unit/mutant/parallel/driver_spec.rb +112 -14
- data/spec/unit/mutant/parallel/source/array_spec.rb +25 -17
- data/spec/unit/mutant/parallel/worker_spec.rb +182 -44
- data/spec/unit/mutant/parallel_spec.rb +105 -8
- data/spec/unit/mutant/range_spec.rb +141 -0
- data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +7 -21
- data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +15 -6
- data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +10 -2
- data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +12 -4
- data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +31 -2
- data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +4 -4
- data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +5 -0
- data/spec/unit/mutant/reporter/cli_spec.rb +46 -123
- data/spec/unit/mutant/repository/diff/ranges_spec.rb +180 -0
- data/spec/unit/mutant/repository/diff_spec.rb +84 -71
- data/spec/unit/mutant/require_highjack_spec.rb +1 -1
- data/spec/unit/mutant/result/env_spec.rb +39 -9
- data/spec/unit/mutant/result/test_spec.rb +14 -0
- data/spec/unit/mutant/runner_spec.rb +88 -41
- data/spec/unit/mutant/selector/expression_spec.rb +11 -10
- data/spec/unit/mutant/selector/null_spec.rb +17 -0
- data/spec/unit/mutant/subject/method/instance_spec.rb +44 -5
- data/spec/unit/mutant/subject/method/singleton_spec.rb +9 -2
- data/spec/unit/mutant/subject_spec.rb +9 -1
- data/spec/unit/mutant/transform/array_spec.rb +92 -0
- data/spec/unit/mutant/transform/bool_spec.rb +63 -0
- data/spec/unit/mutant/transform/error_spec.rb +132 -0
- data/spec/unit/mutant/transform/exception_spec.rb +44 -0
- data/spec/unit/mutant/transform/hash_spec.rb +236 -0
- data/spec/unit/mutant/transform/index_spec.rb +92 -0
- data/spec/unit/mutant/transform/named_spec.rb +49 -0
- data/spec/unit/mutant/transform/primitive_spec.rb +56 -0
- data/spec/unit/mutant/transform/sequence_spec.rb +98 -0
- data/spec/unit/mutant/variable_spec.rb +618 -0
- data/spec/unit/mutant/warnings_spec.rb +89 -0
- data/spec/unit/mutant/world_spec.rb +63 -0
- data/test_app/Gemfile.minitest +0 -2
- metadata +79 -113
- data/.gitattributes +0 -1
- data/.ruby-gemset +0 -1
- data/config/triage.yml +0 -2
- data/lib/mutant/actor.rb +0 -57
- data/lib/mutant/actor/env.rb +0 -31
- data/lib/mutant/actor/mailbox.rb +0 -34
- data/lib/mutant/actor/receiver.rb +0 -42
- data/lib/mutant/actor/sender.rb +0 -26
- data/lib/mutant/ast/meta/restarg.rb +0 -19
- data/lib/mutant/ast/regexp.rb +0 -42
- data/lib/mutant/ast/regexp/transformer.rb +0 -187
- data/lib/mutant/ast/regexp/transformer/direct.rb +0 -123
- data/lib/mutant/ast/regexp/transformer/named_group.rb +0 -59
- data/lib/mutant/ast/regexp/transformer/options_group.rb +0 -83
- data/lib/mutant/ast/regexp/transformer/quantifier.rb +0 -114
- data/lib/mutant/ast/regexp/transformer/recursive.rb +0 -58
- data/lib/mutant/ast/regexp/transformer/root.rb +0 -31
- data/lib/mutant/ast/regexp/transformer/text.rb +0 -60
- data/lib/mutant/env/bootstrap.rb +0 -160
- data/lib/mutant/matcher/compiler.rb +0 -60
- data/lib/mutant/mutator/node/regexp.rb +0 -35
- data/lib/mutant/mutator/node/regexp/alternation_meta.rb +0 -23
- data/lib/mutant/mutator/node/regexp/capture_group.rb +0 -28
- data/lib/mutant/mutator/node/regexp/character_type.rb +0 -32
- data/lib/mutant/mutator/node/regexp/end_of_line_anchor.rb +0 -23
- data/lib/mutant/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +0 -23
- data/lib/mutant/mutator/node/regexp/greedy_zero_or_more.rb +0 -27
- data/lib/mutant/parallel/master.rb +0 -181
- data/lib/mutant/reporter/cli/printer/status.rb +0 -53
- data/lib/mutant/reporter/cli/tput.rb +0 -46
- data/lib/mutant/warning_filter.rb +0 -61
- data/meta/regexp/character_types.rb +0 -23
- data/meta/regexp/regexp_alternation_meta.rb +0 -13
- data/meta/regexp/regexp_bol_anchor.rb +0 -10
- data/meta/regexp/regexp_bos_anchor.rb +0 -18
- data/meta/regexp/regexp_capture_group.rb +0 -19
- data/meta/regexp/regexp_eol_anchor.rb +0 -10
- data/meta/regexp/regexp_eos_anchor.rb +0 -8
- data/meta/regexp/regexp_eos_ob_eol_anchor.rb +0 -10
- data/meta/regexp/regexp_greedy_zero_or_more.rb +0 -12
- data/meta/regexp/regexp_root_expression.rb +0 -10
- data/meta/restarg.rb +0 -10
- data/spec/support/fake_actor.rb +0 -111
- data/spec/support/warning.rb +0 -66
- data/spec/unit/mutant/actor/binding_spec.rb +0 -34
- data/spec/unit/mutant/actor/env_spec.rb +0 -31
- data/spec/unit/mutant/actor/mailbox_spec.rb +0 -28
- data/spec/unit/mutant/actor/message_spec.rb +0 -25
- data/spec/unit/mutant/actor/receiver_spec.rb +0 -58
- data/spec/unit/mutant/actor/sender_spec.rb +0 -24
- data/spec/unit/mutant/ast/regexp/parse_spec.rb +0 -19
- data/spec/unit/mutant/ast/regexp/transformer/lookup_table/table_spec.rb +0 -21
- data/spec/unit/mutant/ast/regexp/transformer/lookup_table_spec.rb +0 -35
- data/spec/unit/mutant/ast/regexp/transformer_spec.rb +0 -21
- data/spec/unit/mutant/ast/regexp_spec.rb +0 -704
- data/spec/unit/mutant/env/bootstrap_spec.rb +0 -188
- data/spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb +0 -26
- data/spec/unit/mutant/parallel/master_spec.rb +0 -338
- data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +0 -121
- data/spec/unit/mutant/reporter/cli/tput_spec.rb +0 -50
- data/spec/unit/mutant/warning_filter_spec.rb +0 -106
- data/spec/unit/mutant_spec.rb +0 -17
- data/test_app/Gemfile.rspec3.7 +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e9289e21c711435b21d02a17ed24ccdd084eea6ff1562c2f96fc7ed898c6af1
|
|
4
|
+
data.tar.gz: 930f03c76551cdd0887aeb661835c8b5ec4597344132a57b48ce21f426892999
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d744106f328779f86c7ee3b49e08a83510c400345bb41c9f22b989fe4b7c74afa9b246b768bc8356d760cb091c96f91e6d97bcfdf074df4fb4265597c827332
|
|
7
|
+
data.tar.gz: f9e252adfb3edd063de29ee628bd044c359dc7ebb441b3f4f31a6d1751281f52689a7360e06b14bd0db9b71d242c0973b723844649e5f7d6785c542ea53811ea
|
data/.circleci/config.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
defaults: &defaults
|
|
2
2
|
working_directory: ~/mutant
|
|
3
3
|
docker:
|
|
4
|
-
|
|
4
|
+
- image: circleci/ruby:2.6.0
|
|
5
5
|
version: 2
|
|
6
6
|
jobs:
|
|
7
7
|
unit_specs:
|
|
@@ -9,7 +9,7 @@ jobs:
|
|
|
9
9
|
steps:
|
|
10
10
|
- checkout
|
|
11
11
|
- run: bundle install
|
|
12
|
-
- run: bundle exec rspec spec/unit
|
|
12
|
+
- run: bundle exec rspec spec/unit spec/integration/mutant/test_mutator_handles_types_spec.rb
|
|
13
13
|
integration_minitest:
|
|
14
14
|
<<: *defaults
|
|
15
15
|
steps:
|
|
@@ -40,7 +40,7 @@ jobs:
|
|
|
40
40
|
steps:
|
|
41
41
|
- checkout
|
|
42
42
|
- run: bundle install
|
|
43
|
-
- run: bundle exec
|
|
43
|
+
- run: bundle exec mutant --jobs 4 --since HEAD~1 --zombie -- 'Mutant*'
|
|
44
44
|
workflows:
|
|
45
45
|
version: 2
|
|
46
46
|
test:
|
data/Changelog.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# v0.9.0
|
|
2
|
+
|
|
3
|
+
* New license.
|
|
4
|
+
* Fix mutations to void value expressions to not be reported as integration error.
|
|
5
|
+
* Remove regexp body mutations
|
|
6
|
+
* Remove restarg mutations
|
|
7
|
+
* Remove support for rspec-3.{4,5,6}
|
|
8
|
+
|
|
9
|
+
# v0.8.25 2018-12-31
|
|
10
|
+
|
|
11
|
+
* Change to {I,M}Var based concurrency
|
|
12
|
+
* Remove actors
|
|
13
|
+
|
|
1
14
|
# v0.8.24 2018-12-29
|
|
2
15
|
|
|
3
16
|
* Change to always insert mutations with frozen string literals
|
|
@@ -21,657 +34,4 @@
|
|
|
21
34
|
|
|
22
35
|
* Replace internal timers with monotonic ones.
|
|
23
36
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* Drop support for Ruby < 2.5
|
|
27
|
-
* Fix bug when mutating a module that includes Memoizable
|
|
28
|
-
|
|
29
|
-
# v0.8.18 2018-10-24
|
|
30
|
-
|
|
31
|
-
* Add support for regexp unicode print nodes https://github.com/mbj/mutant/pull/749
|
|
32
|
-
|
|
33
|
-
# v0.8.17 2018-09-12
|
|
34
|
-
|
|
35
|
-
* Drop support for Ruby < 2.3
|
|
36
|
-
* Use frozen string literals globally
|
|
37
|
-
* Update to parser ~> 2.5
|
|
38
|
-
|
|
39
|
-
# v0.8.16 2018-08-03
|
|
40
|
-
|
|
41
|
-
* Support for rspec-3.x
|
|
42
|
-
|
|
43
|
-
# v0.8.15 2018-07-17
|
|
44
|
-
|
|
45
|
-
* Fix boot time issue
|
|
46
|
-
* Support for rspec-3.7
|
|
47
|
-
|
|
48
|
-
# v0.8.14 2017-07-06
|
|
49
|
-
|
|
50
|
-
* Support ruby 2.4 #719
|
|
51
|
-
|
|
52
|
-
# v0.8.13 2017-06-01
|
|
53
|
-
|
|
54
|
-
* Allow empty match expressions on CLI
|
|
55
|
-
* Add support for rspec-3.6 by @krzysiek150
|
|
56
|
-
* Add support for configurable corpus glob exprssions by @jekuta
|
|
57
|
-
|
|
58
|
-
# v0.8.12 2016-10-17
|
|
59
|
-
|
|
60
|
-
* Add mutation from `/foo|bar/` to `/foo/` and `/bar/`
|
|
61
|
-
* Add mutation from `/$/` to `/\z/`
|
|
62
|
-
* Add mutation from `/\h/` to `/\H/`
|
|
63
|
-
* Add mutation from `/\H/` to `/\h/`
|
|
64
|
-
* Add mutation from `/\Z/` to `/\z/`
|
|
65
|
-
* Add mutation from `flat_map` to `map`
|
|
66
|
-
* Add mutation from `/(foo)/` to `/(?:foo)/`
|
|
67
|
-
* Add mutation from `/a*/` to `/a+/`
|
|
68
|
-
* Add mutation from `/a*/` to `/a/`
|
|
69
|
-
* Add mutation from `!!foo` to `foo`
|
|
70
|
-
* Add mutation from `proc { }` to `lambda { }`
|
|
71
|
-
|
|
72
|
-
# v0.8.11 2016-08-01
|
|
73
|
-
|
|
74
|
-
* Add support for rspec-3.5
|
|
75
|
-
* Remove misleading `--debug` option
|
|
76
|
-
* Remove misleading `--expect-coverage` option
|
|
77
|
-
* Add basic support for regexp mutations (machinery and simple anchor mutations)
|
|
78
|
-
* Add support for mutating csend (duck tape operator) into regular sends
|
|
79
|
-
* Add mutation from `foo&.bar` to `foo.bar`
|
|
80
|
-
* Add mutation from `#to_a` to `#to_set`
|
|
81
|
-
* Add mutation from `foo.dig(a, b)` to `foo.fetch(a).dig(b)`
|
|
82
|
-
* Add mutation from `def foo(bar:); end` to `def foo(_bar:); end`
|
|
83
|
-
* Add mutation from `def foo(bar: baz); end` to `def foo(_bar: baz); end`
|
|
84
|
-
* Add mutation from `/regex/i` to `/regex/`
|
|
85
|
-
* Add mutation from `foo[n..-1]` to `foo.drop(n)`
|
|
86
|
-
* Add mutation from `/^/` to `/\A/`
|
|
87
|
-
* Add mutation from `#first` to `#last`
|
|
88
|
-
* Add mutation from `#last` to `#first`
|
|
89
|
-
* Add mutation from `#sample` to `#first` and `#last`
|
|
90
|
-
* Remove mutations from `1..n` to `1..(0.0 / 0.0)` and `1..(1.0 / 0.0)`
|
|
91
|
-
|
|
92
|
-
# v0.8.10 2016-01-24
|
|
93
|
-
|
|
94
|
-
* Add support for parser 2.3 (via unparser 0.2.5)
|
|
95
|
-
|
|
96
|
-
# v0.8.9 2016-01-05
|
|
97
|
-
|
|
98
|
-
* Add mutation from `Hash#[]` to `Hash#key?` (#511)
|
|
99
|
-
* Add mutation from `Hash#fetch` to `Hash#key?` (#511)
|
|
100
|
-
* Add mutation from `#at` to `#key?` (#511)
|
|
101
|
-
* Add mutation from `Hash#values_at` to `Hash#fetch_values` (#510)
|
|
102
|
-
|
|
103
|
-
# v0.8.8 2015-11-15
|
|
104
|
-
|
|
105
|
-
* Drop support for rspec-3.2
|
|
106
|
-
* Remove CI specific job number default
|
|
107
|
-
* Add support for rspec-3.3.4
|
|
108
|
-
* Add mutations/s performance metric to report
|
|
109
|
-
|
|
110
|
-
# v0.8.7 2015-10-30
|
|
111
|
-
|
|
112
|
-
* Fix blackliting regexp to correctly match the String `(eval)` absolutely.
|
|
113
|
-
|
|
114
|
-
# v0.8.6. 2015-10-27
|
|
115
|
-
|
|
116
|
-
* Add mutation from `Date.parse` to more strict parsing methods #448
|
|
117
|
-
* Add mutation from `foo.to_i` to `Integer(foo)` #455
|
|
118
|
-
* Add mutation from `@foo` to `foo` #454
|
|
119
|
-
|
|
120
|
-
# v0.8.5 2015-09-11
|
|
121
|
-
|
|
122
|
-
* Fix misimplementation of block gluing operator that
|
|
123
|
-
as side effect could also cause invalid AST crashes
|
|
124
|
-
|
|
125
|
-
# v0.8.4 2015-09-10
|
|
126
|
-
|
|
127
|
-
* Add mutation from `a != b` to `!a.eql?(b)` and `!a.equal?(b)` #417
|
|
128
|
-
* Add mutation `A.const_get(:B)` -> `A::B` #426
|
|
129
|
-
* Add mutation `def foo(*args); end` into `def foo(*args); args = []; end` #423
|
|
130
|
-
* Add mutation from `foo.baz { bar }` to `foo.bar` #416
|
|
131
|
-
* Update anima dependency to 0.3.0
|
|
132
|
-
|
|
133
|
-
# v0.8.3 2015-09-01
|
|
134
|
-
|
|
135
|
-
* Remove invalid mutation `super(...)` to `super`
|
|
136
|
-
* Add mutation from `def foo(a = true); end` to `def foo(a = true); a = true; end` #419
|
|
137
|
-
* Add mutation from `def foo; end` to `remove_method :foo` #413
|
|
138
|
-
|
|
139
|
-
# v0.8.2 2015-08-11
|
|
140
|
-
|
|
141
|
-
* Remove invalid mutation `foo or bar` to `!(foo or bar)` see #287
|
|
142
|
-
* Add mutation from `#to_h` to `#to_hash` #218
|
|
143
|
-
* Add mutation from `super` to `super()` #309
|
|
144
|
-
* Add mutation from `#defined?` to `true` / `false` #399
|
|
145
|
-
* Reduce framed (multiline) progress reporter noise
|
|
146
|
-
* Fix a bug where killfork pipes where not properly closed
|
|
147
|
-
|
|
148
|
-
# v0.8.1 2015-07-24
|
|
149
|
-
|
|
150
|
-
* Add --since flag to constrain mutated subjects based on
|
|
151
|
-
repository diff from HEAD to other REVISON.
|
|
152
|
-
* Add mutation from #[] to #at / #fetch
|
|
153
|
-
* Some internal improvements
|
|
154
|
-
|
|
155
|
-
# v0.8.0 2015-06-15
|
|
156
|
-
|
|
157
|
-
* Drop support for ruby < 2.1
|
|
158
|
-
* Remove broken `--code` option
|
|
159
|
-
* Remove deprecated `--score` option
|
|
160
|
-
* Add support for rspec-3.3
|
|
161
|
-
* End support for rspec-3.{0,1}
|
|
162
|
-
* Internal quality improvements
|
|
163
|
-
|
|
164
|
-
# v0.7.9 2015-05-30
|
|
165
|
-
|
|
166
|
-
* Deprecate `--score` flag replace with `--expected-coverage`
|
|
167
|
-
* Set default job count to 4 under CI environments.
|
|
168
|
-
* Relax parser dependency to ~>2.2.2
|
|
169
|
-
|
|
170
|
-
# v0.7.8 2015-03-8
|
|
171
|
-
|
|
172
|
-
* Kill imperfect float rounding for exact coverage expectations.
|
|
173
|
-
|
|
174
|
-
# v0.7.7 2015-02-15
|
|
175
|
-
|
|
176
|
-
* Add support for rspec-3.2
|
|
177
|
-
|
|
178
|
-
# v0.7.6 2015-01-25
|
|
179
|
-
|
|
180
|
-
* Fix crash on using the null integration.
|
|
181
|
-
|
|
182
|
-
# v0.7.5 2015-01-14
|
|
183
|
-
|
|
184
|
-
* Bump deps to support MRI 2.2.
|
|
185
|
-
|
|
186
|
-
# v0.7.4 2014-12-22
|
|
187
|
-
|
|
188
|
-
* Fix rspec example visibility on duplicate metadata examples [#279](https://github.com/mbj/mutant/issues/279).
|
|
189
|
-
* Add naked if/else body emitter [#280](https://github.com/mbj/mutant/issues/280).
|
|
190
|
-
|
|
191
|
-
# v0.7.3 2014-12-09
|
|
192
|
-
|
|
193
|
-
* Fix communication between workers and killforks to work for all binaries.
|
|
194
|
-
|
|
195
|
-
# v0.7.2 2014-12-08
|
|
196
|
-
|
|
197
|
-
* Fix synthetic race conditon in actor implementation
|
|
198
|
-
* Fix progressive reporter slowdown
|
|
199
|
-
|
|
200
|
-
# v0.7.1 2014-12-04
|
|
201
|
-
|
|
202
|
-
* Fix invalid dependencies on rspec for mutant-rspec
|
|
203
|
-
|
|
204
|
-
# v0.7.0 2014-12-04
|
|
205
|
-
|
|
206
|
-
* Use homegrown actor based parallelization
|
|
207
|
-
* Fix redundant spec execution in rspec integration
|
|
208
|
-
* Add mutation from `#send` to `#__send__` (the canonical form).
|
|
209
|
-
|
|
210
|
-
# v0.6.7 2014-11-17
|
|
211
|
-
|
|
212
|
-
* Fix duplicate neutral emit for memoized instance method subjects
|
|
213
|
-
* Fix neutral error detection edge cases
|
|
214
|
-
|
|
215
|
-
# v0.6.6 2014-11-11
|
|
216
|
-
|
|
217
|
-
* Fix emitter to recurse into left and right of binary nodes.
|
|
218
|
-
|
|
219
|
-
# v0.6.5 2014-10-28
|
|
220
|
-
|
|
221
|
-
* Fix killforks not to leak zombies.
|
|
222
|
-
|
|
223
|
-
# v0.6.4 2014-10-27
|
|
224
|
-
|
|
225
|
-
* Do not buffer report prints, speedup large report generation.
|
|
226
|
-
* Fix some cases where --fail-fast semantics stopped far to late.
|
|
227
|
-
* Fix crashing / stuckage from using parallel in a nested way.
|
|
228
|
-
|
|
229
|
-
# v0.6.3 2014-09-22
|
|
230
|
-
|
|
231
|
-
* Add support for rspec-3.1.
|
|
232
|
-
|
|
233
|
-
# v0.6.2 2014-09-16
|
|
234
|
-
|
|
235
|
-
* Fix matcher to ignore metaprogrammed defines [#254](https://github.com/mbj/mutant/issues/254)
|
|
236
|
-
* Add rescue resbody body concat-promotion mutation
|
|
237
|
-
* Add rescue else body concat-promotion mutation #245
|
|
238
|
-
|
|
239
|
-
# v0.6.1 2014-09-16
|
|
240
|
-
|
|
241
|
-
* Incorrectly released on partial state. Yanked.
|
|
242
|
-
|
|
243
|
-
# v0.6.0 2014-08-11
|
|
244
|
-
|
|
245
|
-
* Parallel execution / reporting.
|
|
246
|
-
* Add -j, --jobs flag to control concurrency.
|
|
247
|
-
* Fix blind spots on send with block.
|
|
248
|
-
* Add mutation from `foo { bar }` to `bar`
|
|
249
|
-
* Add mutation from `#reverse_merge` to `#merge`
|
|
250
|
-
* Add mutation from `#<=` to `#<`, `#==`, `#eql?`, `#equal?`
|
|
251
|
-
* Add mutation from `#>=` to `#>`, `#==`, `#eql?`, `#equal?`
|
|
252
|
-
* Add mutation from `#>` to `#==`, `#eql?`, `#equal?`
|
|
253
|
-
* Add mutation from `#<` to `#==`, `#eql?`, `#equal?`
|
|
254
|
-
* Fix reporting of diff errors to include context [tjchambers]
|
|
255
|
-
|
|
256
|
-
# v0.5.26 2014-07-07
|
|
257
|
-
|
|
258
|
-
* Fix exceptions generation matcher errors
|
|
259
|
-
* Fix report generation with formatted string as payload of diffs.
|
|
260
|
-
|
|
261
|
-
# v0.5.25 2014-07-07
|
|
262
|
-
|
|
263
|
-
* Make ordering of subjects and tests deterministic
|
|
264
|
-
* Fix performance of subject selection
|
|
265
|
-
* Improve noop and neutral reporting.
|
|
266
|
-
* Rename noop mutations to neutral mutations
|
|
267
|
-
* Simplify code nuked around 1kloc.
|
|
268
|
-
|
|
269
|
-
# v0.5.24 2014-06-30
|
|
270
|
-
|
|
271
|
-
* Fix invalid AST on op_assign mutations
|
|
272
|
-
* Make subject matching result order deterministic
|
|
273
|
-
* Improve internals a bit for more consistency.
|
|
274
|
-
* Add instance methods expression 'Foo#'
|
|
275
|
-
* Add singleton methods expression 'Foo.'
|
|
276
|
-
* Split rspec2 and rspec3 integration with minimal duplication
|
|
277
|
-
* Move test matching outside of integrations.
|
|
278
|
-
|
|
279
|
-
# v0.5.23 2014-06-15
|
|
280
|
-
|
|
281
|
-
* Propagate exceptions from child-isolation-killforks to master
|
|
282
|
-
|
|
283
|
-
# v0.5.22 2014-06-15
|
|
284
|
-
|
|
285
|
-
* Fix invalid AST generation on operator method mutation with self as receiver.
|
|
286
|
-
|
|
287
|
-
# v0.5.21 2014-06-15
|
|
288
|
-
|
|
289
|
-
* Readd mutation of index assignments
|
|
290
|
-
* Remove a bunch of useless mutations to nil.something
|
|
291
|
-
* Readd mutation of index reference arguments
|
|
292
|
-
|
|
293
|
-
# v0.5.20 2014-06-14
|
|
294
|
-
|
|
295
|
-
* Remove support for matchers prefixed with ::
|
|
296
|
-
* Fix cases where mutated source diff was empty #198
|
|
297
|
-
* Fix mutate to simpler primitive violation break to next #203
|
|
298
|
-
* Improve integration / corpus tests to spot highlevel regressions on CI level.
|
|
299
|
-
|
|
300
|
-
* Remove support for matchers prefixed with ::
|
|
301
|
-
|
|
302
|
-
# v0.5.19 2014-06-06
|
|
303
|
-
|
|
304
|
-
Changes:
|
|
305
|
-
|
|
306
|
-
* Do not emit more powerful rescue matchers #183
|
|
307
|
-
* Do not emit more powerful loop control #201
|
|
308
|
-
|
|
309
|
-
# v0.5.18 2014-06-04
|
|
310
|
-
|
|
311
|
-
Changes:
|
|
312
|
-
|
|
313
|
-
* Do not rename lhs of or assigns when lhs is a ivasgn. Closes #150
|
|
314
|
-
|
|
315
|
-
# v0.5.17 2014-05-27
|
|
316
|
-
|
|
317
|
-
Changes:
|
|
318
|
-
|
|
319
|
-
* Report selected tests in progress runner
|
|
320
|
-
* Fix scope of rspec selections to include meaningful parents.
|
|
321
|
-
* Add short circuits on already dead mutations under multiple test selections.
|
|
322
|
-
|
|
323
|
-
# v0.5.16 2014-05-27
|
|
324
|
-
|
|
325
|
-
Changes:
|
|
326
|
-
|
|
327
|
-
* Fix granularity of test selection under rspec
|
|
328
|
-
* Add mutation from [item] to item
|
|
329
|
-
* Add mutation from #reverse_each to #each
|
|
330
|
-
* Add mutation from #reverse_map to #each, #map
|
|
331
|
-
* Add mutation from #map to #each
|
|
332
|
-
|
|
333
|
-
# v0.5.15 2014-05-24
|
|
334
|
-
|
|
335
|
-
Changes:
|
|
336
|
-
|
|
337
|
-
* Put isolation pipe into binmode
|
|
338
|
-
|
|
339
|
-
Changes:
|
|
340
|
-
|
|
341
|
-
* Add support for rspec-3.0.0.rc1
|
|
342
|
-
* Remove some senseless rescue mutations
|
|
343
|
-
|
|
344
|
-
# v0.5.13 2014-05-23
|
|
345
|
-
|
|
346
|
-
Changes:
|
|
347
|
-
|
|
348
|
-
* Improve reporting of isolation problems
|
|
349
|
-
* Centralize test selection
|
|
350
|
-
* Report selected tests
|
|
351
|
-
* Report rspec output on noop failures
|
|
352
|
-
* Silence warnings on methods without source location
|
|
353
|
-
|
|
354
|
-
# v0.5.12 2014-05-09
|
|
355
|
-
|
|
356
|
-
Changes:
|
|
357
|
-
|
|
358
|
-
* Remove pointless mutation nil => Object.new
|
|
359
|
-
|
|
360
|
-
# v0.5.11 2014-04-22
|
|
361
|
-
|
|
362
|
-
Changes:
|
|
363
|
-
|
|
364
|
-
* Fix crash on while and until without body
|
|
365
|
-
* Better require highjack based zombifier
|
|
366
|
-
* Do not mutate nthref $1 to gvar $0
|
|
367
|
-
* Use faster duplicate guarding hashing AST::Node instances
|
|
368
|
-
* Fix lots of shadowed invalid ASTs
|
|
369
|
-
* Fix undefine initialize warnings, Closes #175
|
|
370
|
-
|
|
371
|
-
# v0.5.10 2014-04-06
|
|
372
|
-
|
|
373
|
-
Changes:
|
|
374
|
-
|
|
375
|
-
* Fix crash on case without conditional
|
|
376
|
-
* Remove dependency to descendants tracker
|
|
377
|
-
* Add mutation #== => #eql?, #equal?
|
|
378
|
-
* Add mutation #eql? => #equal?
|
|
379
|
-
|
|
380
|
-
# v0.5.9 2014-03-28
|
|
381
|
-
|
|
382
|
-
Changes:
|
|
383
|
-
|
|
384
|
-
* Fix mutation of memoized methods with the memoizable gem.
|
|
385
|
-
|
|
386
|
-
# v0.5.8 2014-03-26
|
|
387
|
-
|
|
388
|
-
Changes:
|
|
389
|
-
|
|
390
|
-
* Fix crash on Module#name and Class#name returning non Strings
|
|
391
|
-
|
|
392
|
-
# v0.5.7 2014-03-23
|
|
393
|
-
|
|
394
|
-
Changes:
|
|
395
|
-
|
|
396
|
-
* Fix crash on invalid partial AST unparsing, closes: #164
|
|
397
|
-
|
|
398
|
-
# v0.5.6 2014-03-09
|
|
399
|
-
|
|
400
|
-
Changes:
|
|
401
|
-
|
|
402
|
-
* Correctly specifiy diff-lcs dependency
|
|
403
|
-
|
|
404
|
-
# v0.5.5 2014-03-09
|
|
405
|
-
|
|
406
|
-
Changes:
|
|
407
|
-
|
|
408
|
-
* Morpher dependency bump
|
|
409
|
-
|
|
410
|
-
# v0.5.4 2014-03-08
|
|
411
|
-
|
|
412
|
-
Changes:
|
|
413
|
-
|
|
414
|
-
* Morpher dependency bump
|
|
415
|
-
|
|
416
|
-
# v0.5.3 2014-03-05
|
|
417
|
-
|
|
418
|
-
Changes:
|
|
419
|
-
|
|
420
|
-
* mutant-rspec now supports rspec3 beta
|
|
421
|
-
|
|
422
|
-
# v0.5.2 2014-03-04
|
|
423
|
-
|
|
424
|
-
Changes:
|
|
425
|
-
|
|
426
|
-
* Use parser 2.1.6 that has its own Parser::Meta::NODE_LIST
|
|
427
|
-
|
|
428
|
-
# v0.5.1 2014-03-03
|
|
429
|
-
|
|
430
|
-
Changes:
|
|
431
|
-
|
|
432
|
-
* Remove rspec dep from main mutant gem
|
|
433
|
-
|
|
434
|
-
# v0.5.0 2014-03-02
|
|
435
|
-
|
|
436
|
-
Changes:
|
|
437
|
-
|
|
438
|
-
* Add configurable coverage expectation via --coverage (default 100%)
|
|
439
|
-
* rspec integration was moved into a gem 'mutant-rspec'
|
|
440
|
-
* Replace filters implementation with morpher predicates
|
|
441
|
-
* Drop --rspec option use: --use rspec instead.
|
|
442
|
-
|
|
443
|
-
# v0.4.0 2014-02-16
|
|
444
|
-
|
|
445
|
-
Status: Yanked because of broken dependencies.
|
|
446
|
-
|
|
447
|
-
# v0.3.4 2014-01-11
|
|
448
|
-
|
|
449
|
-
Changes:
|
|
450
|
-
|
|
451
|
-
* Depend on anima-0.2.0
|
|
452
|
-
|
|
453
|
-
# v0.3.4 2014-01-11
|
|
454
|
-
|
|
455
|
-
Bugfixes:
|
|
456
|
-
|
|
457
|
-
* Correctly fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
|
|
458
|
-
|
|
459
|
-
# v0.3.3 2014-01-11
|
|
460
|
-
|
|
461
|
-
Changes:
|
|
462
|
-
|
|
463
|
-
* Bump dependency to unparser-0.1.8 that fixes dozens of non reported issues.
|
|
464
|
-
|
|
465
|
-
Bugfixes:
|
|
466
|
-
|
|
467
|
-
* Fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
|
|
468
|
-
|
|
469
|
-
# v0.3.2 2013-12-31
|
|
470
|
-
|
|
471
|
-
Bugfixes:
|
|
472
|
-
|
|
473
|
-
* Fix crash on until nodes: https://github.com/mbj/mutant/issues/143
|
|
474
|
-
* Fix missing requires: https://github.com/mbj/mutant/issues/141
|
|
475
|
-
* Fix crash on unknown nodes, fixes #143
|
|
476
|
-
* Use more durable unparser version 0.1.6
|
|
477
|
-
|
|
478
|
-
# v0.3.1 2013-12-19
|
|
479
|
-
|
|
480
|
-
Bugfixes:
|
|
481
|
-
|
|
482
|
-
* Add missing require of stringio, #141
|
|
483
|
-
|
|
484
|
-
# v0.3.0 2013-12-10
|
|
485
|
-
|
|
486
|
-
Feature:
|
|
487
|
-
|
|
488
|
-
* Rewrite all mutators on top of whitequark/parser (major!)
|
|
489
|
-
* Also mutate conditions in case statements
|
|
490
|
-
* Add tons of mutators I lost track about during development.
|
|
491
|
-
* Add --ignore-subject optoin supporting the same syntax as matchers
|
|
492
|
-
|
|
493
|
-
Bugfixes:
|
|
494
|
-
|
|
495
|
-
* Fix lots of crashes.
|
|
496
|
-
* Fix all known multiple diff errors
|
|
497
|
-
* Handle methods memoized with adamantium correctly
|
|
498
|
-
|
|
499
|
-
Bugfixes:
|
|
500
|
-
|
|
501
|
-
* Fix all bugs caused by mutant-melbourne
|
|
502
|
-
|
|
503
|
-
# v0.2.20 2013-03-01
|
|
504
|
-
|
|
505
|
-
* Update dependencies
|
|
506
|
-
|
|
507
|
-
[Compare v0.2.17..v0.2.20](https://github.com/mbj/mutant/compare/v0.2.17...v0.2.20)
|
|
508
|
-
|
|
509
|
-
# v0.2.17 2013-01-20
|
|
510
|
-
|
|
511
|
-
* Kill mutations in #initialize from class methods.
|
|
512
|
-
|
|
513
|
-
# v0.2.17 2013-01-20
|
|
514
|
-
|
|
515
|
-
Other:
|
|
516
|
-
|
|
517
|
-
* Update dependencies
|
|
518
|
-
|
|
519
|
-
[Compare v0.2.16..v0.2.17](https://github.com/mbj/mutant/compare/v0.2.16...v0.2.17)
|
|
520
|
-
|
|
521
|
-
# v0.2.16 2013-01-20
|
|
522
|
-
|
|
523
|
-
Bugfix:
|
|
524
|
-
|
|
525
|
-
* Handle Rubinius::AST::NthRef as noop
|
|
526
|
-
|
|
527
|
-
[Compare v0.2.15..v0.2.16](https://github.com/mbj/mutant/compare/v0.2.15...v0.2.16)
|
|
528
|
-
|
|
529
|
-
# v0.2.15 2013-01-10
|
|
530
|
-
|
|
531
|
-
Bugfix:
|
|
532
|
-
|
|
533
|
-
* Do not mutate super to super() anymore. This needs a context check in future.
|
|
534
|
-
|
|
535
|
-
[Compare v0.2.14..v0.2.15](https://github.com/mbj/mutant/compare/v0.2.14...v0.2.15)
|
|
536
|
-
|
|
537
|
-
# v0.2.14 2013-01-09
|
|
538
|
-
|
|
539
|
-
Bugfix:
|
|
540
|
-
|
|
541
|
-
* Do not emit mutation to { nil => nil } for hash literals
|
|
542
|
-
|
|
543
|
-
[Compare v0.2.13..v0.2.14](https://github.com/mbj/mutant/compare/v0.2.13...v0.2.14)
|
|
544
|
-
|
|
545
|
-
# v0.2.13 2013-01-09
|
|
546
|
-
|
|
547
|
-
Bugfix:
|
|
548
|
-
|
|
549
|
-
* Capture failures that occur in the window between mutation insertion and spec run as kills
|
|
550
|
-
|
|
551
|
-
[Compare v0.2.12..v0.2.13](https://github.com/mbj/mutant/compare/v0.2.12...v0.2.13)
|
|
552
|
-
|
|
553
|
-
# v0.2.12 2013-01-03
|
|
554
|
-
|
|
555
|
-
Bugfix:
|
|
556
|
-
|
|
557
|
-
* Do not crash when trying to load methods from precompiled ruby under rbx
|
|
558
|
-
|
|
559
|
-
[Compare v0.2.11..v0.2.12](https://github.com/mbj/mutant/compare/v0.2.11...v0.2.12)
|
|
560
|
-
|
|
561
|
-
# v0.2.11 2013-01-03
|
|
562
|
-
|
|
563
|
-
Feature:
|
|
564
|
-
|
|
565
|
-
* Handle binary operator methods in dedicated mutator
|
|
566
|
-
|
|
567
|
-
Bugfix:
|
|
568
|
-
|
|
569
|
-
* Do not crash when mutating binary operator method
|
|
570
|
-
|
|
571
|
-
[Compare v0.2.10..v0.2.11](https://github.com/mbj/mutant/compare/v0.2.10...v0.2.11)
|
|
572
|
-
|
|
573
|
-
# v0.2.10 2013-01-03
|
|
574
|
-
|
|
575
|
-
Bugfix:
|
|
576
|
-
|
|
577
|
-
* Do not mutate receivers away when message name is a keyword
|
|
578
|
-
|
|
579
|
-
[Compare v0.2.9..v0.2.10](https://github.com/mbj/mutant/compare/v0.2.9...v0.2.10)
|
|
580
|
-
|
|
581
|
-
# v0.2.9 2013-01-02
|
|
582
|
-
|
|
583
|
-
Feature:
|
|
584
|
-
|
|
585
|
-
* Mutate instance and global variable assignments
|
|
586
|
-
* Mutate super calls
|
|
587
|
-
|
|
588
|
-
[Compare v0.2.8..v0.2.9](https://github.com/mbj/mutant/compare/v0.2.8...v0.2.9)
|
|
589
|
-
|
|
590
|
-
# v0.2.8 2012-12-29
|
|
591
|
-
|
|
592
|
-
Feature:
|
|
593
|
-
|
|
594
|
-
* Do not mutate argument or local variable names beginning with an underscore
|
|
595
|
-
* Mutate unary calls ```coerce(object)``` => ```object```
|
|
596
|
-
* Mutate method call receivers ```foo.bar``` => ```foo```
|
|
597
|
-
|
|
598
|
-
[Compare v0.2.7..v0.2.8](https://github.com/mbj/mutant/compare/v0.2.7...v0.2.8)
|
|
599
|
-
|
|
600
|
-
# v0.2.7 2012-12-21
|
|
601
|
-
|
|
602
|
-
Feature:
|
|
603
|
-
|
|
604
|
-
* Use latest adamantium and ice_nine
|
|
605
|
-
|
|
606
|
-
[Compare v0.2.6..v0.2.7](https://github.com/mbj/mutant/compare/v0.2.6...v0.2.7)
|
|
607
|
-
|
|
608
|
-
# v0.2.6 2012-12-14
|
|
609
|
-
|
|
610
|
-
Bugfix:
|
|
611
|
-
|
|
612
|
-
* Correctly set file and line of injected mutants
|
|
613
|
-
|
|
614
|
-
[Compare v0.2.5..v0.2.6](https://github.com/mbj/mutant/compare/v0.2.5...v0.2.6)
|
|
615
|
-
|
|
616
|
-
# v0.2.5 2012-12-12
|
|
617
|
-
|
|
618
|
-
Feature:
|
|
619
|
-
|
|
620
|
-
* Add --debug flag for showing killer output and mutation
|
|
621
|
-
* Run noop mutation per subject to guard against initial failing specs
|
|
622
|
-
* Mutate default into required arguments
|
|
623
|
-
* Mutate default literals
|
|
624
|
-
* Mutate unwinding of pattern args ```|(a, b), c|``` => ```|a, b, c|```
|
|
625
|
-
* Mutate define and block arguments
|
|
626
|
-
* Mutate block arguments, inklusive pattern args
|
|
627
|
-
* Recurse into block bodies
|
|
628
|
-
* Unvendor inflector use mbj-inflector from rubygems
|
|
629
|
-
|
|
630
|
-
Bugfix:
|
|
631
|
-
|
|
632
|
-
* Insert mutations at correct constant scope
|
|
633
|
-
* Crash on mutating yield, added a noop for now
|
|
634
|
-
* Crash on singleton methods defined on other than constants or self
|
|
635
|
-
|
|
636
|
-
[Compare v0.2.4..v0.2.5](https://github.com/mbj/mutant/compare/v0.2.4...v0.2.5)
|
|
637
|
-
|
|
638
|
-
# v0.2.4 2012-12-12
|
|
639
|
-
|
|
640
|
-
Bugfix:
|
|
641
|
-
|
|
642
|
-
* Correctly vendor inflector
|
|
643
|
-
|
|
644
|
-
[Compare v0.2.3..v0.2.4](https://github.com/mbj/mutant/compare/v0.2.3...v0.2.4)
|
|
645
|
-
|
|
646
|
-
# v0.2.3 2012-12-08
|
|
647
|
-
|
|
648
|
-
Bugfix:
|
|
649
|
-
|
|
650
|
-
* Prepend extra elements to hash and array instead of append. This fixes unkillable mutators in parallel assignments!
|
|
651
|
-
|
|
652
|
-
[Compare v0.2.2..v0.2.3](https://github.com/mbj/mutant/compare/v0.2.2...v0.2.3)
|
|
653
|
-
|
|
654
|
-
# v0.2.2 2012-12-07
|
|
655
|
-
|
|
656
|
-
Feature:
|
|
657
|
-
|
|
658
|
-
* Add a shitload of operator expansions for dm2 strategy
|
|
659
|
-
|
|
660
|
-
[Compare v0.2.1..v0.2.2](https://github.com/mbj/mutant/compare/v0.2.1...v0.2.2)
|
|
661
|
-
|
|
662
|
-
# v0.2.1 2012-12-07
|
|
663
|
-
|
|
664
|
-
Bugfix:
|
|
665
|
-
|
|
666
|
-
* Crash on unavailable source location
|
|
667
|
-
* Incorrect handling of if and unless statements
|
|
668
|
-
* Expand Foo#initialize to spec/unit/foo in rspec dm2 strategy
|
|
669
|
-
* Correctly expand [] to element_reader_spec.rb in rspec dm2 strategy
|
|
670
|
-
* Correctly expand []= to element_writer_spec.rb in rspec dm2 strategy
|
|
671
|
-
* Correctly expand foo= to foo_writer_spec.rb in rspec dm2 strategy
|
|
672
|
-
|
|
673
|
-
[Compare v0.2.0..v0.2.1](https://github.com/mbj/mutant/compare/v0.2.0...v0.2.1)
|
|
674
|
-
|
|
675
|
-
# v0.2.0 2012-12-07
|
|
676
|
-
|
|
677
|
-
First public release!
|
|
37
|
+
Find older changelogs in the project [history](https://github.com/mbj/mutant/blob/84d119fe49ebad51b213cb08285b95e6e7c4fab6/Changelog.md#v0821-2018-12-03)
|