Skip to content

Latest commit

 

History

History
661 lines (491 loc) · 51 KB

CHANGELOG.md

File metadata and controls

661 lines (491 loc) · 51 KB

Change Log

0.16.0 (2020-03-22)

Full Changelog

Added:

  • Allow the initial test suite to be skipped #1042
  • Implements dry-run mode #1183
  • Add notice to console output if actual msi is higher than required msi #877
  • Allow to configure ignore globally #1104
  • Parallel source file collector #1097
  • Concurrent mutation generator #1082
  • Add accepted ADR entries #1192
  • Increase niceness for mutant processes #1152
  • Enhancement: Use ondram/ci-detector to resolve build context #1135
  • Automatically install Test Framework adapter if needed #1102
  • Accounting For Codeception Cest Tests In JUnit File. #1074
  • Introduce ConfigurableMutator #1012
  • Enhancement: Allow specifying a few command line options via config #789
  • Use infection/extension-installer to automatically register Test Framework Adapters #1019
  • Exclude --configuration from PhpUnit options #941

Changed:

  • Drop support for PHP 7.2 #1132
  • Use coverage report as a primary source of files to mutate #1106
  • Extract PhpSpec Test Framework adapter to a separate package #1052
  • Extract Abstract TestFrameworkAdapter & Codeception to separate packages #933
  • Optimize JUnit test lookups to stop on the first element #1172
  • Rename InfectionCommand to RunCommand #1188
  • Rename LineCodeCoverage to Trace #1164
  • Remove dependency on OutputInterface for the loggers #1157
  • Update continuous-integration.yml to use PHP 7.3 #1142
  • Bundle test framework adapters into PHAR #1141
  • Migrate to the new Stryker dashboard API #1136
  • Make PHPUnit fail on warning or risky #1115
  • Improve TextLogger #1110
  • Remove MutantWasCreated #1096
  • Introduce specific configuration objects for the mutators #1005

Fixed:

  • Fix the order in which the infection configuration files are loaded #1105
  • Fix scoping #1072
  • Fix false positives since update to 0.14.x #815
  • Ignore bogus "not installed" exception from PackageVersions #1151
  • Don't let PHP 7.4 builds fail #1130
  • Provide a more user-friendly error when the schema path is invalid #1080

Full Changelog

Added:

  • [MUTATOR] Add 'clone' removal mutator #864
  • [MUTATOR] Add UnwrapStrReplace mutator #831
  • Add support for Codeception Test Framework #800
  • Allow text logs to be written to a PHP stream #821
  • Add version number to ASCII banner (#809) #855
  • Infection should emit its version when run #808
  • Allow to enable pcov with initial-tests-php-options #830
  • Enable Symfony 5 components #842

Changed:

  • According to PHP 7.4 changelog, stream_set_option() should always return false #837
  • Do not call deprecated/removed method for new versions of symfony/process #843
  • Introduce TestFrameworkAdapter interface #840
  • Rework the configuration #750

Fixed:

  • TypeError not detected as failing test #836
  • Make interceptor resilient to file not found warnings (#846) #862
  • The profile keys are missing in the schema.json #732
  • Fix Docker builds for PHP 7.4 #818
  • Fatal error by UnwrapArrayMerge and unpack #801
  • The console output is missing a few line breaks / new lines #798

Full Changelog

Added:

  • [Mutator] Mutate mb_str_split to str_split #787
  • [Mutator] Spread operator in Array Expression - leave only the first element #784
  • [Mutator] Leave only one element in the non empty returned array #735
  • Use xdebug-filter to reduce the time needed to collect coverage #781
  • Add Symfony PHPUnitBridge #755
  • Use codingmachine/safe #745
  • Allow installation only with the most recent versions for dev dependencies #744
  • Add PCOV to TravisCI #741
  • Ensure the dev tools are up to date #725

Changed:

  • Bump requirements up to PHP 7.2 #700
  • Do not round down values in MetricsCalculator #701
  • Dramatically reduce memory usage by using classes instead of object-like arrays #710
  • Rework infection command #767
  • Remove the self-update command #688
  • Move coverage data to the mutation #733
  • Deactivate stderr redirection in phpunit.xml #791
  • Add missed profile and mutator keys to the validation schema.json #782
  • Move e2e tests to the correct place. #780
  • Remove Travis' phpunit binaries since they conflicts with vendor's phpunit #773
  • Consume directly the InfectionContainer instead of a generic PSR-11 #761
  • Bump the versions used where appropriate #743
  • Update used memory detection for PHPUnit 8 #739
  • Update E2E tests to use PHPUnit 8 #738
  • Update xdebug-handler to 1.3.3, remove workarounds #737
  • Upgrade to PHPUnit 8.2.3 #713
  • Error out when 0 lines of code were covered #602
  • Add ignore property for each Mutator in JSON schema. #699
  • PhpProcess: Reset $_ENV if it is in use #693
  • Update alt text of slack badge #707

Fixed:

  • Multiple extra test framework options escape in the wrong way #615
  • "Return value of MutatorConfig::getMutatorSettings() must be of the type array, object returned" with mutator that has settings #666
  • Deal with object settings #772
  • initialTestsPhpOptions does not get picked from infection.json[.dist] #672
  • Sort & Remove duplicates entries in .gitignore #724
  • ArrayItemRemoval configuration doesn't support the "ignore" property #698
  • Error about missing phar pubkey file on self-update #684
  • Target MSI on Travis with empty --filter #631
  • Zero percent code coverage is not an issue for Infection #488
  • Infection config generator fails to handle multiple ignored directories #580
  • Fix Infection config builder: make sure it always creates an array for excluded dirs but not object #714

Full Changelog (2019-05-18)

Added:

  • Log the InitialTestsRun command line when --debug is used #520
  • Preliminary support for PCOV #667
  • Adding Line Numbers To Mutator Ignore List #663
  • Family bc*-functions mutators (bcmath support) #658
  • Family mb_*-functions mutators #654
  • Add a new unwrap mutator: ucwords #644
  • New @unwrap mutator: lcfirst() #642
  • Provide compact output for CI environments #613
  • add unwrap array_pad mutator #680
  • add unwrap array_intersect_assoc mutator #679
  • #597 Array item removal mutator #649
  • Enhancement: Implement UnwrapTrim mutator #638
  • Enhancement: Implement UnwrapArrayUintersect mutator #637
  • Enhancement: Implement UnwrapArrayUintersectUassoc mutator #633
  • Enhancement: Implement UnwrapArrayUintersectAssoc mutator #628
  • Enhancement: Implement UnwrapArrayUdiff mutator #624
  • Mutator: AssignCoalesce. Upgrade PHPParser to 4.2.1 #641
  • Mutator: UnwrapUcFirst (unwrap the first argument of ucfirst() function) #635

Fixed:

  • Multi line arrays are not properly handled by code coverage #652
  • Error when parsing method that creates anonymous class #616
  • Infection gets stuck in the first execution after configuration file is created #576
  • Wrong constructor ownership when returning an anonymous class #682
  • Do not mutate * to / and vice versa if one of the operands is numeric ±1.0 #673

Changed:

  • Stop traversal of interfaces and abstract methods #656
  • Add a few more count esque functions to not decrement against #640
  • Enhancement: Normalize composer.json #629
  • Upgrade PHPUnit from ^6.5 to ^7.5 and all dependencies, including root differ #627
  • Test against php 7.4 #625

0.12.0 (2019-01-24)

Full Changelog

BC Breaks:

  • Disabling mutating "true" -> "false" in TrueValue mutator for in_array/array_search #599

Added:

  • Allow settings for Mutators #206
  • Enhancement: Implement UnwrapArrayUdiffAssoc mutator #614
  • Enhancement: Implement UnwrapArraySplice mutator #605
  • Enhancement: Implement UnwrapArraySlice mutator #598
  • Enhancement: Implement UnwrapArrayMergeRecursive mutator #594
  • Enhancement: Implement UnwrapArrayIntersectUkey mutator #593
  • Enhancement: Implement UnwrapArrayIntersectUassoc mutator #591
  • Enhancement: Implement UnwrapArrayColumn mutator #590
  • Enhancement: Implement UnwrapArrayIntersectKey mutator #584
  • Enhancement: Implement UnwrapArrayDiffUkey mutator #583

Fixed:

  • Schema does not include initialTestsPhpOptions #606
  • Space in PHP interpreter path breaks Infection #600
  • Starting infection via phing differs from commandline #592
  • symfony/phpunit-bridge isn't supported #588
  • Symfony flex should correctly detect phpunit executable #493

Changed:

  • Running command with --only-covered should add in log only covered code. #581
  • Add a test to check Infection works with PSR-0 compliant autoloader #579
  • Update gitattributes file #532

0.11.0 (2018-11-11)

Full Changelog

BC Breaks:

  • Add counterparts to identical mutator and remove them from default #391 (BackEndTea)

Added:

Fixed:

  • Do not require dev packages on Deploy stage #445 (borNfreee)
  • Batch file invoked with php - breaks test framework version #469
  • Validate that infection.json contains valid (writable) file paths for loggers #458 (borNfreee)
  • Fix .bat files being invoked with php #470 (johnstevenson)
  • Exclude --testsuite from PhpUnit mutant options, but allow for initial process #480
  • Extend TestFrameworkExtraOptions to cover more complex usages of options #483 (tomtomau)
  • Restrict installation with broken versions of symfony/console #523 (sanmai)
  • Fix Decrement integer #485 (BackEndTea)
  • Update ProtectedVisibility/PublicVisibility to guard against missing reflection #502 (sanmai)
  • Update TestFrameworkFinder to always look for a .bat first. #506 (sanmai)
  • TestFrameworkFinderTest fails to run on Mac OS X #504
  • PublicVisibility mutator failing due to missing reflection #501
  • --initial-tests-php-options ignored on Windows #471
  • Do not mutate the code inside plain functions #466
  • Infection does not fail gracefully on an invalid phpunit.xml #409
  • Do not mutate code that is ignored from code coverage #407
  • Fix: Keep mutators in mutator profiles sorted by name #541 (localheinz)

Changed:

  • Rename infection-log.txt -> infection.log #454 (borNfreee)
  • Improve compatibility with framework based applications #440 (patrickfunke)
  • Add some breathing space around our logo #509 (sanmai)
  • Explicitly add the default profile to the list of mutators #507 (sanmai)
  • Do not travers plain functions unless they are in the method or closures #508 (borNfreee)
  • Do not mutate interfaces #548 (sanmai)
  • Include the complete license in headers #528 (sanmai)

0.10.0 (2018-08-11)

Full Changelog

BC Breaks:

  • Drop PHP 7.0 support #414

Added:

Fixed:

  • 100% MSI reported even if a small number of uncovered mutations is found #426
  • Round MSI down to the smallest integer, instead of nearest #431 (sanmai)
  • Space in directory path breaks Infection #413
  • BadgeLogger now reports exact errors #405 (sanmai)
  • Quiet mode is as quiet as one can expect it to be #403
  • Fix exclude to excludes for generated config file #423 (BackEndTea)
  • Brew installation isn't supported anymore or docs aren't updated #416

0.9.0 (2018-07-02)

Full Changelog

BC Breaks:

Added:

  • Feature: Profiles #220
  • Mutation badge #207
  • Feature:disable certain mutators #177
  • Add reflection classes to mutators. Do no mutate public method visibility if parent has the same one #67
  • [Mutator] IdenticalEqual and NotIdenticalNotEqual mutators #298
  • [Mutator] Remove type cast operators #297
  • [Mutator] Add mutator that removes finally {} block #261
  • [Mutator] Yield Mutator #242
  • [Mutator] ArrayItem Mutator #240
  • [Mutator] Add a For Loop mutator & test #230
  • [Mutator] Add Assignment Equal Mutator #229
  • [Mutator] Add Assignment Mutator #228
  • [Mutator] Add the first regex mutator #333 (BackEndTea)
  • Use PHP-Parser 4 to preserve mutated code formatting #55
  • [epic] Scope and deploy signed PHAR #338
  • Add a per mutator logging option #346 (BackEndTea)
  • Update travis config to deploy PHAR and pubkey on releases #353 (borNfreee)

Changed:

  • Xdebug/ phpdbg check should be later in the infection process #325
  • Stop mutation of abstract methods default parameters #361 (BackEndTea)
  • Add a test to check whether classes are unit tested #360 (BackEndTea)
  • Clean up after Mutation testing has been finished #357 (sidz)
  • Simplify the EventDispatcher #348 (BackEndTea)

Fixed:

  • infection ignores phpunit.xml bootstrap file #320
  • False positive when calculation is in multiple lines #366
  • Allow Absolute Path to phpunit.xml(.dist) #387 (adeptofvoltron)
  • Account for statements spanning multiple lines #375 (sanmai)
  • Look for .bat on all platforms #374 (sanmai)
  • False positive: count(-1) (decrement integer mutator) #364
  • Infection works incorrectly on Windows #351
  • Weird behaviour in Docker container #332
  • Initial test suite may fail to deliver coverage, e.g. under Docker #306
  • Infection infects /tmp #356
  • Infection does not correctly detect whether phpunit is php-executable #300
  • Infection can't report on effectiveness of mutators #271
  • Do not decrement integer 0 when it is being compared with the result of count() #365 (borNfreee)

0.8.0 (2018-02-27)

Full Changelog

BC Breaks:

  • Make paths in config file relative to config file #165 (BackEndTea)
  • Remove exclude option from config #155 (sidz)

Implemented enhancements:

  • Implement integer increment and decrement mutators #152 (localheinz)
  • Implement Throw mutator #164 (BackEndTea)
  • Use existing coverage reports #176 (borNfreee)
  • Do not require Xdebug/phpdbg when existing coverage is provided #183 (sidz)
  • Add an option to pass additional parameters to the PHP binary #185 (sidz)
  • Allow relative path for tmpDir config setting. #151 (borNfreee)
  • Allow coverage of function signatures of traits #191 (BackEndTea)

Performance:

  • Fix performance issue in SourceFilesFinder #186 (borNfreee)
  • Reuse created mutant files to avoid traversing and pretty printing #184 (borNfreee)

Fixed bugs:

  • Windows can't open this file when composer.phar is found #196
  • Infection ignores coverage on trait(s) #189
  • Existing coverage: "cannot load zend opcache" #182
  • Phpunit "excludes" are not properly parsed #167
  • Allow coverage of function signatures of traits #191 (BackEndTea)
  • Fix: Don't mutate abstract methods #169 (BackEndTea)
  • Don't try to expand directories with \* and \*\* (glob pattern) #171 (sidz)

0.7.1 (2018-02-02)

Full Changelog

Deprecated:

  • exclude option in infection.json is Deprecated! and will be removed in 0.8.0. Use excludes instead

Implemented enhancements:

  • PHPUnit ^7.0 support
  • Remove tests/test folders when infection is run for root directory. W… #117 (borNfreee)
  • Config setting for temp files #140 (sidz)
  • Make Humbug's config to be compatible with Infection #120 (sidz)
  • added new types of logs (debug, summary) #135 (BackEndTea)

Fixed bugs:

  • PHP DOM Extension not working when explicitly enabled twice #125
  • Infection not working if using custom printer #108
  • Infection not working with phpdbg #106
  • Startup problem #104
  • Default values of functions not being found by coverage #101
  • disable colors options #99
  • Mutations not working well with function_exists #97
  • Not covered mutant with switch(true) -> switch(false) mutation #34
  • Fix: mutate methods but not functions #113 (BackEndTea)

Merged pull requests:

0.7.0 (2017-12-22)

Full Changelog

Performance:

  • Disable xdebug for all php processes except code coverage generator #85 (sidz)
  • Parse each source file just 1 time, cache original file AST #95 (borNfreee)

Merged pull requests:

Fixed bugs:

  • Fix issue when custom path for test framework exists #93 (sidz)

Closed issues:

  • Add comma separated files filter #84 (Landerstraeten)
  • Is Infection compatible with PHPUnit 5.x ? #83
  • Feature Request: Add line numbers to diffs on Escaped mutants #72
  • [WIP] Optimize PHP files parsing #86

0.6.2 (2017-11-18)

Full Changelog

Implemented enhancements:

  • Console logger output format to be compatible with TextFile logger format #80 (sidz)

Fixed bugs:

  • Do not return path of config file when dir is expected. #82 (borNfreee)

Closed issues:

  • Uncovered Mutations not logged? #78

Merged pull requests:

  • Improve the order script execution for travis #81 (sidz)

0.6.1 (2017-11-18)

Full Changelog

Performance:

  • Reuse Parser, Lexer, PrettyPrinter #76 (borNfreee)
  • Skip composer config bin-dir check if custom path exists #66 (sidz)

Developer Experience (DX):

  • Display test framework output when initial tests fail #65 (borNfreee)
  • Show fatal errors in the console and file logs #64 (borNfreee)
  • Add Log verbosity #56 (sidz)
  • Infection can be installed via Homebrew on MacOS

Fixed bugs:

  • Warning with empty PHPUnit bootstrap #74
  • PublicVisibility mutator seen as escaped mutant for a class implementing an interface #60
  • Source files outside the src folder always skipped #57
  • Show correct type of error message for CI flags #68 (dmecke)

Closed issues:

  • Tests do not pass. Error code 2. "Misuse of shell builtins". STDERR #61
  • Hide killed mutants in output log? #54
  • Tests do not pass. Error code 255. "Unknown error". STDERR: #43
  • Coverage data missing #30

Other merged pull requests:

0.6.0 (2017-10-09)

Full Changelog

Closed issues:

  • [New Mutator] Swap arguments in the Spaceship operator #47

Merged pull requests:

  • Upgrade Mockery to ^1.0 #50 (borNfreee)
  • Compatibility with PHPUnit 6.4 #49 (morozov)
  • Add composer script for static analyzing tools #46 (borNfreee)
  • Fix performance bottleneck by introducing a simple instance-level object cache #44 (borNfreee)
  • Zero iteration mutator #52 (sidz)
  • Add Break-Continue mutators #51 (sidz)
  • Swap arguments on spaceship operator #48 (marcosh)

0.5.3 (2017-09-15)

Full Changelog

Implemented enhancements:

  • Display PHPUnit/PHPSpec version under what tests are run #31
  • Provide meaningful feedback on failure #29
  • Add exceptions handling with printing trace for verbose level. #39 (borNfreee)

Closed issues:

  • license is weird #35
  • request: support phpdbg #36

Merged pull requests:

0.5.2 (2017-09-02)

Full Changelog

Fixed bugs:

  • SourceDirGuesser failure #23

Closed issues:

  • Run as project dependency #27
  • Dependency on sebastian/diff #21

Merged pull requests:

  • Add ISSUE_TEMPLATE.md to get all required info from users #26 (borNfreee)
  • Added option '-c|--configuration' for custom configuration file path. #28 (corpsee)
  • Fix autoload section from composer.json and allow to use multiple paths #25 (sidz)
  • Fixed bootstrap.php for case with install by Composer as dependency and run from vendor/bin #22 (corpsee)

0.5.1 (2017-08-20)

Full Changelog

Merged pull requests:

  • Auto add coverage filter whitelist for phpunit.xml.dist to make it possible to analyze coverage #20 (borNfreee)
  • Smart ReturnValue mutators #19 (borNfreee)

0.5.0 (2017-08-08)

Full Changelog

Merged pull requests:

  • Add whitelist for executed mutators. New option --mutators=X,Yy,Zzz #18 (borNfreee)
  • Public->protected, protected->private Visibility Mutators #17 (borNfreee)

0.4.0 (2017-07-27)

Full Changelog

Closed issues:

  • Location of test framework #4

Merged pull requests:

  • Add --min-msi and --min-covered-msi options to control MSI in CI and fail builds #16 (borNfreee)
  • Allow to exclude files, not only dirs in the infection.json config file #15 (borNfreee)
  • Fix issues reported by PHPStan. Run it for each build #14 (borNfreee)
  • Add php-cs-fixer config, apply fixes #13 (borNfreee)
  • Add arithmetic tests #12 (borNfreee)
  • Fix build on Windows. Integrate Appveyor #10 (borNfreee)

0.3.0 (2017-07-14)

Full Changelog

Fixed bugs:

  • Timeout #6
  • Uncaught Error: Call to a member function appendChild() on null #5

Merged pull requests:

  • Add possibility to set custom PHPUnit executable path #9 (borNfreee)
  • Pass timeout setting to Initial Process builder to control test suite #8 (borNfreee)
  • Handle situation when PHPUnit <testsuite /> node is placed directly inside the root node #7 (borNfreee)

0.2.1 (2017-07-11)

Full Changelog

Merged pull requests:

  • Add \Phar::loadPhar() in custom autoloader with Stream Interceptor #3 (borNfreee)

0.2.0 (2017-07-08)

Full Changelog

Closed issues:

  • Phar distribution #1

Merged pull requests:

0.1.0 (2017-07-01)

* This Change Log was automatically generated by github_changelog_generator