free_mutant/Changelog.md

595 lines
14 KiB
Markdown
Raw Normal View History

# v0.8.11 2016-08-01
2016-01-23 22:49:49 -05:00
2016-08-01 15:07:12 -04:00
* Add support for rspec-3.5
* Remove misleading `--debug` option
* Remove misleading `--expect-coverage` option
2016-08-01 15:07:12 -04:00
* Add basic support for regexp mutations (machinery and simple anchor mutations)
2016-01-23 22:49:49 -05:00
* Add support for mutating csend (duck tape operator) into regular sends
2016-01-23 22:07:01 -05:00
# v0.8.10 2016-01-24
* Add support for parser 2.3 (via unparser 0.2.5)
2016-01-05 13:42:18 -05:00
# v0.8.9 2016-01-05
* Add mutation from `Hash#[]` to `Hash#key?` (#511)
* Add mutation from `Hash#fetch` to `Hash#key?` (#511)
2015-12-31 18:03:39 -05:00
* Add mutation from `#at` to `#key?` (#511)
* Add mutation from `Hash#values_at` to `Hash#fetch_values` (#510)
# v0.8.8 2015-11-15
2015-11-15 16:50:22 -05:00
* Drop support for rspec-3.2
* Remove CI specific job number default
2015-11-15 14:45:39 -05:00
* Add support for rspec-3.3.4
* Add mutations/s performance metric to report
# v0.8.7 2015-10-30
* Fix blackliting regexp to correctly match the String `(eval)` absolutely.
2015-10-27 16:46:31 -04:00
# v0.8.6. 2015-10-27
* Add mutation from `Date.parse` to more strict parsing methods #448
* Add mutation from `foo.to_i` to `Integer(foo)` #455
* Add mutation from `@foo` to `foo` #454
2015-09-11 19:37:56 -04:00
# v0.8.5 2015-09-11
* Fix misimplementation of block gluing operator that
as side effect could also cause invalid AST crashes
2015-09-10 09:05:56 -04:00
# v0.8.4 2015-09-10
2015-09-08 11:36:09 -04:00
* Add mutation from `a != b` to `!a.eql?(b)` and `!a.equal?(b)` #417
* Add mutation `A.const_get(:B)` -> `A::B` #426
* Add mutation `def foo(*args); end` into `def foo(*args); args = []; end` #423
* Add mutation from `foo.baz { bar }` to `foo.bar` #416
2015-09-10 09:05:56 -04:00
* Update anima dependency to 0.3.0
2015-09-01 10:45:13 -04:00
# v0.8.3 2015-09-01
* Remove invalid mutation `super(...)` to `super`
* Add mutation from `def foo(a = true); end` to `def foo(a = true); a = true; end` #419
* Add mutation from `def foo; end` to `remove_method :foo` #413
2015-08-10 21:18:49 -04:00
# v0.8.2 2015-08-11
* Remove invalid mutation `foo or bar` to `!(foo or bar)` see #287
2015-08-09 23:46:17 -04:00
* Add mutation from `#to_h` to `#to_hash` #218
* Add mutation from `super` to `super()` #309
* Add mutation from `#defined?` to `true` / `false` #399
* Reduce framed (multiline) progress reporter noise
2015-08-10 21:18:49 -04:00
* Fix a bug where killfork pipes where not properly closed
2015-07-24 05:05:02 -04:00
# v0.8.1 2015-07-24
2015-07-05 12:02:46 -04:00
* Add --since flag to constrain mutated subjects based on
repository diff from HEAD to other REVISON.
2015-07-05 12:02:46 -04:00
* Add mutation from #[] to #at / #fetch
2015-07-24 05:05:02 -04:00
* Some internal improvements
2015-07-05 12:02:46 -04:00
2015-06-14 07:52:13 -04:00
# v0.8.0 2015-06-15
* Drop support for ruby < 2.1
2015-06-13 00:11:05 -04:00
* Remove broken `--code` option
2015-06-13 00:23:40 -04:00
* Remove deprecated `--score` option
2015-06-13 00:01:24 -04:00
* Add support for rspec-3.3
* End support for rspec-3.{0,1}
2015-06-14 07:52:13 -04:00
* Internal quality improvements
2015-05-30 17:32:23 -04:00
# v0.7.9 2015-05-30
* Deprecate `--score` flag replace with `--expected-coverage`
* Set default job count to 4 under CI environments.
2015-05-30 17:32:23 -04:00
* Relax parser dependency to ~>2.2.2
2015-03-08 13:49:33 -04:00
# v0.7.8 2015-03-8
* Kill imperfect float rounding for exact coverage expectations.
2015-02-15 14:01:46 -05:00
# v0.7.7 2015-02-15
* Add support for rspec-3.2
2015-01-25 12:37:30 -05:00
# v0.7.6 2015-01-25
* Fix crash on using the null integration.
2015-01-14 07:02:42 -05:00
# v0.7.5 2015-01-14
* Bump deps to support MRI 2.2.
2014-12-22 07:28:46 -05:00
# v0.7.4 2014-12-22
2014-12-22 07:32:07 -05:00
* Fix rspec example visibility on duplicate metadata examples [#279](https://github.com/mbj/mutant/issues/279).
* Add naked if/else body emitter [#280](https://github.com/mbj/mutant/issues/280).
2014-12-22 07:28:46 -05:00
2014-12-08 18:06:16 -05:00
# v0.7.3 2014-12-09
2014-12-19 13:04:39 -05:00
* Fix communication between workers and killforks to work for all binaries.
2014-12-08 18:06:16 -05:00
2014-12-08 13:13:49 -05:00
# v0.7.2 2014-12-08
* Fix synthetic race conditon in actor implementation
2014-12-08 13:13:49 -05:00
* Fix progressive reporter slowdown
2014-12-03 20:17:25 -05:00
# v0.7.1 2014-12-04
* Fix invalid dependencies on rspec for mutant-rspec
2014-12-03 20:15:00 -05:00
# v0.7.0 2014-12-04
2014-10-23 07:37:53 -04:00
* Use homegrown actor based parallelization
2014-12-03 20:15:00 -05:00
* Fix redundant spec execution in rspec integration
2014-12-08 18:40:15 -05:00
* Add mutation from `#send` to `#__send__` (the canonical form).
2014-10-23 07:37:53 -04:00
2014-11-17 17:36:11 -05:00
# v0.6.7 2014-11-17
* Fix duplicate neutral emit for memoized instance method subjects
* Fix neutral error detection edge cases
# v0.6.6 2014-11-11
* Fix emitter to recurse into left and right of binary nodes.
2014-10-28 07:15:01 -04:00
# v0.6.5 2014-10-28
2014-10-28 07:13:14 -04:00
* Fix killforks not to leak zombies.
2014-10-28 07:15:01 -04:00
# v0.6.4 2014-10-27
* Do not buffer report prints, speedup large report generation.
* Fix some cases where --fail-fast semantics stopped far to late.
2014-10-27 08:30:48 -04:00
* Fix crashing / stuckage from using parallel in a nested way.
2014-09-17 14:16:05 -04:00
# v0.6.3 2014-09-22
* Add support for rspec-3.1.
2014-09-16 18:13:51 -04:00
# v0.6.2 2014-09-16
2014-09-16 18:07:48 -04:00
* Fix matcher to ignore metaprogrammed defines [#254](https://github.com/mbj/mutant/issues/254)
* Add rescue resbody body concat-promotion mutation
* Add rescue else body concat-promotion mutation #245
2014-09-16 18:13:51 -04:00
# v0.6.1 2014-09-16
2014-09-16 18:09:02 -04:00
* Incorrectly released on partial state. Yanked.
# v0.6.0 2014-08-11
2014-07-17 09:59:25 -04:00
* Parallel execution / reporting.
* Add -j, --jobs flag to control concurrency.
2014-07-18 19:50:48 -04:00
* Fix blind spots on send with block.
* Add mutation from `foo { bar }` to `bar`
* Add mutation from `#reverse_merge` to `#merge`
* Add mutation from `#<=` to `#<`, `#==`, `#eql?`, `#equal?`
* Add mutation from `#>=` to `#>`, `#==`, `#eql?`, `#equal?`
* Add mutation from `#>` to `#==`, `#eql?`, `#equal?`
* Add mutation from `#<` to `#==`, `#eql?`, `#equal?`
* Fix reporting of diff errors to include context [tjchambers]
2014-07-17 09:59:25 -04:00
2014-07-07 16:37:08 -04:00
# v0.5.26 2014-07-07
* Fix exceptions generation matcher errors
* Fix report generation with formatted string as payload of diffs.
2014-07-07 14:46:37 -04:00
# v0.5.25 2014-07-07
* Make ordering of subjects and tests deterministic
* Fix performance of subject selection
* Improve noop and neutral reporting.
* Rename noop mutations to neutral mutations
* Simplify code nuked around 1kloc.
2014-06-30 09:46:41 -04:00
# v0.5.24 2014-06-30
* Fix invalid AST on op_assign mutations
* Make subject matching result order deterministic
* Improve internals a bit for more consistency.
* Add instance methods expression 'Foo#'
* Add singleton methods expression 'Foo.'
* Split rspec2 and rspec3 integration with minimal duplication
* Move test matching outside of integrations.
2014-06-25 12:58:57 -04:00
# v0.5.23 2014-06-15
* Propagate exceptions from child-isolation-killforks to master
# v0.5.22 2014-06-15
* Fix invalid AST generation on operator method mutation with self as receiver.
2014-06-15 11:36:45 -04:00
# v0.5.21 2014-06-15
2014-06-15 11:34:45 -04:00
* Readd mutation of index assignments
* Remove a bunch of useless mutations to nil.something
* Readd mutation of index reference arguments
2014-06-15 11:36:45 -04:00
# v0.5.20 2014-06-14
2014-06-14 17:48:48 -04:00
* Remove support for matchers prefixed with ::
* Fix cases where mutated source diff was empty #198
* Fix mutate to simpler primitive violation break to next #203
* Improve integration / corpus tests to spot highlevel regressions on CI level.
* Remove support for matchers prefixed with ::
2014-06-06 15:46:36 -04:00
# v0.5.19 2014-06-06
Changes:
* Do not emit more powerful rescue matchers #183
* Do not emit more powerful loop control #201
2014-06-04 12:11:40 -04:00
# v0.5.18 2014-06-04
Changes:
* Do not rename lhs of or assigns when lhs is a ivasgn. Closes #150
2014-05-27 12:48:26 -04:00
# v0.5.17 2014-05-27
Changes:
* Report selected tests in progress runner
* Fix scope of rspec selections to include meaningful parents.
* Add short circuits on already dead mutations under multiple test selections.
2014-05-27 12:48:26 -04:00
2014-05-27 09:24:18 -04:00
# v0.5.16 2014-05-27
Changes:
2014-05-27 09:24:18 -04:00
* Fix granularity of test selection under rspec
* Add mutation from [item] to item
* Add mutation from #reverse_each to #each
* Add mutation from #reverse_map to #each, #map
* Add mutation from #map to #each
2014-05-24 08:21:46 -04:00
# v0.5.15 2014-05-24
Changes:
* Put isolation pipe into binmode
2014-05-23 16:30:55 -04:00
Changes:
* Add support for rspec-3.0.0.rc1
2014-05-23 16:33:00 -04:00
* Remove some senseless rescue mutations
2014-05-23 16:30:55 -04:00
2014-05-22 23:27:13 -04:00
# v0.5.13 2014-05-23
Changes:
* Improve reporting of isolation problems
2014-05-22 23:27:13 -04:00
* Centralize test selection
* Report selected tests
* Report rspec output on noop failures
* Silence warnings on methods without source location
2014-05-09 16:11:37 -04:00
# v0.5.12 2014-05-09
Changes:
* Remove pointless mutation nil => Object.new
2014-04-22 15:28:44 -04:00
# v0.5.11 2014-04-22
Changes:
* Fix crash on while and until without body
* Better require highjack based zombifier
2014-04-20 18:05:57 -04:00
* Do not mutate nthref $1 to gvar $0
* Use faster duplicate guarding hashing AST::Node instances
* Fix lots of shadowed invalid ASTs
* Fix undefine initialize warnings, Closes #175
2014-04-06 17:52:17 -04:00
# v0.5.10 2014-04-06
2014-03-29 00:28:51 -04:00
Changes:
* Fix crash on case without conditional
2014-03-29 00:28:51 -04:00
* Remove dependency to descendants tracker
2014-03-30 10:56:51 -04:00
* Add mutation #== => #eql?, #equal?
* Add mutation #eql? => #equal?
2014-03-29 00:28:51 -04:00
2014-03-28 11:44:37 -04:00
# v0.5.9 2014-03-28
Changes:
* Fix mutation of memoized methods with the memoizable gem.
2014-03-26 16:40:47 -04:00
# v0.5.8 2014-03-26
Changes:
* Fix crash on Module#name and Class#name returning non Strings
2014-03-22 20:52:44 -04:00
# v0.5.7 2014-03-23
Changes:
* Fix crash on invalid partial AST unparsing, closes: #164
2014-03-12 12:23:06 -04:00
# v0.5.6 2014-03-09
Changes:
* Correctly specifiy diff-lcs dependency
2014-03-09 17:47:57 -04:00
# v0.5.5 2014-03-09
Changes:
* Morpher dependency bump
2014-03-08 19:00:46 -05:00
# v0.5.4 2014-03-08
Changes:
* Morpher dependency bump
2014-03-05 14:18:32 -05:00
# v0.5.3 2014-03-05
Changes:
* mutant-rspec now supports rspec3 beta
2014-03-04 15:23:42 -05:00
# v0.5.2 2014-03-04
Changes:
* Use parser 2.1.6 that has its own Parser::Meta::NODE_LIST
2014-03-03 07:21:16 -05:00
# v0.5.1 2014-03-03
Changes:
* Remove rspec dep from main mutant gem
# v0.5.0 2014-03-02
2014-01-17 18:26:23 -05:00
Changes:
* Add configurable coverage expectation via --coverage (default 100%)
2014-02-16 16:21:05 -05:00
* rspec integration was moved into a gem 'mutant-rspec'
* Replace filters implementation with morpher predicates
2014-01-17 18:26:23 -05:00
* Drop --rspec option use: --use rspec instead.
# v0.4.0 2014-02-16
Status: Yanked because of broken dependencies.
2014-01-11 18:44:36 -05:00
# v0.3.4 2014-01-11
2014-01-13 16:26:35 -05:00
Changes:
* Depend on anima-0.2.0
# v0.3.4 2014-01-11
2014-01-11 18:44:36 -05:00
Bugfixes:
* Correctly fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
2014-01-11 17:57:00 -05:00
# v0.3.3 2014-01-11
Changes:
* Bump dependency to unparser-0.1.8 that fixes dozens of non reported issues.
Bugfixes:
* Fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
2013-12-31 11:05:30 -05:00
# v0.3.2 2013-12-31
Bugfixes:
* Fix crash on until nodes: https://github.com/mbj/mutant/issues/143
* Fix missing requires: https://github.com/mbj/mutant/issues/141
* Fix crash on unknown nodes, fixes #143
* Use more durable unparser version 0.1.6
2013-12-19 10:53:33 -05:00
# v0.3.1 2013-12-19
Bugfixes:
* Add missing require of stringio, #141
2013-12-10 16:41:27 -05:00
# v0.3.0 2013-12-10
2013-06-14 12:03:16 -04:00
Feature:
2013-12-10 16:41:27 -05:00
* Rewrite all mutators on top of whitequark/parser (major!)
2013-06-14 12:03:16 -04:00
* Also mutate conditions in case statements
2013-12-10 16:41:27 -05:00
* Add tons of mutators I lost track about during development.
* Add --ignore-subject optoin supporting the same syntax as matchers
Bugfixes:
* Fix lots of crashes.
* Fix all known multiple diff errors
* Handle methods memoized with adamantium correctly
2013-06-14 12:03:16 -04:00
Bugfixes:
* Fix all bugs caused by mutant-melbourne
2013-12-10 16:41:27 -05:00
# v0.2.20 2013-03-01
2013-03-01 10:45:32 -05:00
2013-06-14 12:03:16 -04:00
* Update dependencies
2013-03-01 10:45:32 -05:00
[Compare v0.2.17..v0.2.20](https://github.com/mbj/mutant/compare/v0.2.17...v0.2.20)
2013-02-16 16:09:26 -05:00
# v0.2.17 2013-01-20
2013-06-14 12:03:16 -04:00
* Kill mutations in #initialize from class methods.
# v0.2.17 2013-01-20
2013-06-14 12:03:16 -04:00
Other:
* Update dependencies
2013-02-16 16:09:26 -05:00
2013-03-01 10:45:32 -05:00
[Compare v0.2.16..v0.2.17](https://github.com/mbj/mutant/compare/v0.2.16...v0.2.17)
2013-01-20 07:19:40 -05:00
# v0.2.16 2013-01-20
2013-06-14 12:03:16 -04:00
Bugfix:
* Handle Rubinius::AST::NthRef as noop
2013-03-01 10:45:32 -05:00
[Compare v0.2.15..v0.2.16](https://github.com/mbj/mutant/compare/v0.2.15...v0.2.16)
# v0.2.15 2013-01-10
2013-06-14 12:03:16 -04:00
Bugfix:
* Do not mutate super to super() anymore. This needs a context check in future.
[Compare v0.2.14..v0.2.15](https://github.com/mbj/mutant/compare/v0.2.14...v0.2.15)
# v0.2.14 2013-01-09
2013-06-14 12:03:16 -04:00
Bugfix:
* Do not emit mutation to { nil => nil } for hash literals
2013-01-09 17:38:35 -05:00
[Compare v0.2.13..v0.2.14](https://github.com/mbj/mutant/compare/v0.2.13...v0.2.14)
# v0.2.13 2013-01-09
2013-06-14 12:03:16 -04:00
Bugfix:
* Capture failures that occur in the window between mutation insertion and spec run as kills
[Compare v0.2.12..v0.2.13](https://github.com/mbj/mutant/compare/v0.2.12...v0.2.13)
2013-01-03 17:33:23 -05:00
# v0.2.12 2013-01-03
2013-06-14 12:03:16 -04:00
Bugfix:
* Do not crash when trying to load methods from precompiled ruby under rbx
2013-01-03 17:33:23 -05:00
[Compare v0.2.11..v0.2.12](https://github.com/mbj/mutant/compare/v0.2.11...v0.2.12)
2013-01-03 17:34:53 -05:00
# v0.2.11 2013-01-03
2013-06-14 12:03:16 -04:00
Feature:
* Handle binary operator methods in dedicated mutator
Bugfix:
* Do not crash when mutating binary operator method
[Compare v0.2.10..v0.2.11](https://github.com/mbj/mutant/compare/v0.2.10...v0.2.11)
2013-01-03 10:52:42 -05:00
# v0.2.10 2013-01-03
2013-06-14 12:03:16 -04:00
Bugfix:
* Do not mutate receivers away when message name is a keyword
2013-01-03 10:52:42 -05:00
[Compare v0.2.9..v0.2.10](https://github.com/mbj/mutant/compare/v0.2.9...v0.2.10)
2013-01-01 19:04:16 -05:00
# v0.2.9 2013-01-02
2013-01-01 17:28:21 -05:00
2013-06-14 12:03:16 -04:00
Feature:
* Mutate instance and global variable assignments
* Mutate super calls
2013-01-01 17:28:21 -05:00
[Compare v0.2.8..v0.2.9](https://github.com/mbj/mutant/compare/v0.2.8...v0.2.9)
2012-12-29 10:00:27 -05:00
# v0.2.8 2012-12-29
2013-06-14 12:03:16 -04:00
Feature:
* Do not mutate argument or local variable names beginning with an underscore
* Mutate unary calls ```coerce(object)``` => ```object```
* Mutate method call receivers ```foo.bar``` => ```foo```
2012-12-29 10:00:27 -05:00
[Compare v0.2.7..v0.2.8](https://github.com/mbj/mutant/compare/v0.2.7...v0.2.8)
2012-12-21 05:58:31 -05:00
# v0.2.7 2012-12-21
2013-06-14 12:03:16 -04:00
Feature:
* Use latest adamantium and ice_nine
2012-12-21 05:58:31 -05:00
[Compare v0.2.6..v0.2.7](https://github.com/mbj/mutant/compare/v0.2.6...v0.2.7)
# v0.2.6 2012-12-14
2013-06-14 12:22:34 -04:00
Bugfix:
* Correctly set file and line of injected mutants
[Compare v0.2.5..v0.2.6](https://github.com/mbj/mutant/compare/v0.2.5...v0.2.6)
2012-12-12 16:54:11 -05:00
# v0.2.5 2012-12-12
2012-12-07 21:11:26 -05:00
2013-06-14 12:03:16 -04:00
Feature:
* Add --debug flag for showing killer output and mutation
* Run noop mutation per subject to guard against initial failing specs
* Mutate default into required arguments
* Mutate default literals
* Mutate unwinding of pattern args ```|(a, b), c|``` => ```|a, b, c|```
* Mutate define and block arguments
* Mutate block arguments, inklusive pattern args
* Recurse into block bodies
* Unvendor inflector use mbj-inflector from rubygems
Bugfix:
* Insert mutations at correct constant scope
* Crash on mutating yield, added a noop for now
* Crash on singleton methods defined on other than constants or self
2012-12-07 21:11:26 -05:00
[Compare v0.2.4..v0.2.5](https://github.com/mbj/mutant/compare/v0.2.4...v0.2.5)
2012-12-12 12:24:10 -05:00
# v0.2.4 2012-12-12
2013-06-14 12:03:16 -04:00
Bugfix:
* Correctly vendor inflector
2012-12-12 12:24:10 -05:00
[Compare v0.2.3..v0.2.4](https://github.com/mbj/mutant/compare/v0.2.3...v0.2.4)
2012-12-07 21:11:26 -05:00
2012-12-07 19:57:42 -05:00
# v0.2.3 2012-12-08
2013-06-14 12:03:16 -04:00
Bugfix:
* Prepend extra elements to hash and array instead of append. This fixes unkillable mutators in parallel assignments!
2012-12-07 19:57:42 -05:00
[Compare v0.2.2..v0.2.3](https://github.com/mbj/mutant/compare/v0.2.2...v0.2.3)
2012-12-07 21:11:26 -05:00
2012-12-07 19:08:19 -05:00
# v0.2.2 2012-12-07
2012-12-07 18:52:03 -05:00
2013-06-14 12:03:16 -04:00
Feature:
* Add a shitload of operator expansions for dm2 strategy
2012-12-07 18:52:03 -05:00
[Compare v0.2.1..v0.2.2](https://github.com/mbj/mutant/compare/v0.2.1...v0.2.2)
# v0.2.1 2012-12-07
2012-12-07 14:17:04 -05:00
2013-06-14 12:03:16 -04:00
Bugfix:
* Crash on unavailable source location
* Incorrect handling of if and unless statements
* Expand Foo#initialize to spec/unit/foo in rspec dm2 strategy
* Correctly expand [] to element_reader_spec.rb in rspec dm2 strategy
* Correctly expand []= to element_writer_spec.rb in rspec dm2 strategy
* Correctly expand foo= to foo_writer_spec.rb in rspec dm2 strategy
2012-12-07 14:17:04 -05:00
[Compare v0.2.0..v0.2.1](https://github.com/mbj/mutant/compare/v0.2.0...v0.2.1)
2012-12-07 13:43:47 -05:00
# v0.2.0 2012-12-07
2012-12-07 06:10:11 -05:00
First public release!