Skip to content

Latest commit

 

History

History
987 lines (702 loc) · 67.3 KB

CHANGELOG.md

File metadata and controls

987 lines (702 loc) · 67.3 KB

Change Log

0.28.0 (2024-03-23)

Full Changelog

Added:

  • Add PHP-Parser 5 support by @sidz in #1909

Change Log

0.27.3 (2023-09-28)

Full Changelog

Added:

  • Add GitLab code quality reporting (--logger-gitlab) in #1878

0.27.0 (2023-05-16)

Full Changelog

Added:

  • Add negation mutators by @manhunto in #1753
  • Calculate results and show metrics if Infection is interrupted with SIGINT (ctrl + c) by @maks-rafalko in #1857

Changed:

  • #857 Treat log paths as relative to config directory by @LeoVie in #1851
  • Do not mutate $var instanceof ClassName inside assert() function as it's impossible or hard to kill by @maks-rafalko in #1852

Fixed:

  • During all "unwrap" functions, return the real values instead of values wrapped with Node\Arg() class by @maks-rafalko in #1853
  • Make PHPUnit 10.1 XML coverage report and test cases names with provider compatible with Infection and old format by @maks-rafalko in #1854

Internal:

  • Upgrade PHP-CS-Fixer by @maks-rafalko in #1855
  • Add GH Action to requrie tests in Pull Requests by @maks-rafalko in #1848
  • Update sebastian/differ to the latest verions by @maks-rafalko in #1850
  • Allow fidry/cpu-core-counter v0.5 by @Slamdunk in #1826
  • Remove xdebug-filter.php as it's not used and deprecated by @maks-rafalko in #1856
  • Upgrade PHPStan to the latest version and fix some errors by @maks-rafalko in #1859
  • Upgrade the codebase up to PHP 8.1 syntax using Rector by @maks-rafalko in #1860
  • Upgrade psalm to the latest version by @maks-rafalko in #1858
  • Integrate sidz/phpstan-rules to avoid magic numbers in our code base by @maks-rafalko in #1861

New Contributors

  • @manhunto made their first contribution in #1753
  • @LeoVie made their first contribution in #1851

Full Changelog: https://github.com/infection/infection/compare/0.26.21...0.27.0

0.26.20 (2023-04-15)

Full Changelog

Added:

  • Add support for PHPUnit 10.1 and use <source /> tag for coverage instead of <coverage /> by @maks-rafalko in https://github.com
  • Log thread count as part of performance by @icanhazstring in #1836

Changed:

  • Bump minimum PHP version required to PHP 8.1 by @theofidry in #1765
  • Declare conflict with uncompatible versions of antecedent/patchwork by @sanmai in #1829
  • Change CDN URL for mutation-testing-elements.js by @maks-rafalko in #1830
  • Trying to remove false positive on logical or. by @Neirda24 in #1801

0.26.19 (2023-02-06)

Full Changelog

Added:

  • PHPUnit 10 support

0.26.18 (2023-01-21)

Full Changelog

Added:

  • New logger "summaryJson" - machine-readable file in JSON format. (#1808)

0.26.17 (2023-01-19)

Full Changelog

Added:

  • PHP 8.2 support

Fixed:

  • ArrayItemRemoval mutator should not mutate an array when set as an attributes argument #1797
  • PHP Warning on startup when using Infection from PHAR #1770
  • PHP 8.2: Deprecated: Use of "static" in callables is deprecated in .../vendor/webmozart/assert/src/Assert.php on line 939 #1802
  • False positive: Throw_ mutant not covered by tests #1778
  • Line CodeCoverage is not a reliable source of truth #1750

0.26.16 (2022-10-22)

Full Changelog

Added:

  • Add new MatchArmRemoval mutator #1744
  • Add new CatchBlockRemoval mutator #1742
  • Add new Catch_ mutator #1741
  • Add new UnwrapFinally mutator #1740

Fixed:

  • Fix the issue with anonymous classes inside arrays #1745

Changed:

  • Do not mutate coalesce operator in the Assignment mutator mutator #1739
  • Make CPU cores count more tolerant towards system command errors #1733

0.26.0 (2022-01-10)

Full Changelog

Added:

  • Implement the Stryker HTML report #1625
  • Add new --git-diff-lines option to generate Mutants only for the changed lines #1632
  • Show ignored mutants on progress and summary #1612

Changed:

  • Replace badge logger with more advanced stryker logger #1629
  • Mark Mutant as killed if Test Framework returns non-zero exit code #1621
  • Set failOnRisky, failOnWarning to true if parameters are not already set for mutants #1630
  • Automatically set XDEBUG_MODE=coverage if needed #1518
  • Add dg/bypass-finals to the conflict packages list #1605

0.25.4 (2021-12-08)

Full Changelog

Added:

  • PHP 8.1 support #1535
  • Allow Symfony 6 #1606
  • Set XDEBUG_MODE for processes with coverage #1518
  • Add dg/bypass-finals to the conflict packages list #1605

Changed:

  • Stop Infection execution with 0 exit code when git diff filter returns empty result #1600
  • feat: Concat does not generate mutant when both operands are the same #1602

0.25.0 (2021-09-05)

Full Changelog

Added:

  • Detect syntax errors during mutation analysis and differentiate them from all errors #1555 #262
  • Add $schema to generated infection.json config file for autocomplete #1553 #1432

Changed:

  • [Performance] Add files to coverage whitelist instead of the whole directories when --filter or --git-diff-filter are used #1543
  • [Performance] Speed up Infection runs by remembering which test killed a mutant #1519 #1549
  • [internal] Allow Infection test suite to be executed in parallel using Paratest #1544
  • Generate infection.json (without .dist postfix) by default #1554
  • Do not mark Mutant as Killed when no tests were executed #1546

Fixed:

  • Display time and consumed memory even in case of insufficient MSI #1562
  • Trim "\n" and "\t" characters when replacing relative paths with absolute ones during XML config creation #1550 #1542
  • For Mutant's phpunit.xml, set executionOrder="default" to prevent random ordering of the tests since we need them to be sorted (fastest - first) #1547

0.24.0 (2021-07-25)

Full Changelog

Added:

  • [Mutator] Add Mutator SpreadAssignment #1529
  • [Mutator] Add Mutator SpreadRemoval #1529

Changed:

  • [Performance] Improve Infection performance executed against slow test suites #1539
  • Allow using MSI Badge for multiple branches #1538
  • Add Mutator information to GitHub annotation logger #1540
  • [BC BREAK] Rename Spread mutator to SpreadOneItem #1529

0.23.0 (2021-05-13)

Full Changelog

Added:

  • Add support for Pest test framework #1516

Fixed:

  • Multiplication mutator should not mutate when return value is integer #1515

Changed:

  • [BE BREAK] Remove CodeCoverageAnnotationIgnorer #1517
  • Upgrade xdebug-handler to v2 #1510

0.22.0 (2021-04-24)

Full Changelog

Added:

  • Add INFECTION and TEST_TOKEN environment variables for each Mutant process #1504

Fixed:

  • composer install --no-scripts installs 0.13.4 instead of 0.15.0 #876
  • Invalid mutator config Bug #1479
  • Error: Expected a value other than null #1480
  • git-diff-filter option on MacOS doesn't work #1492
  • TypeError: Argument 1 passed to PhpParser\Node\Scalar\LNumber::__construct() must be of the type int, float given #1484
  • Do not increment max integer value #1486
  • Do not decrement min integer value #1488
  • Fix file not found exception for Codeception Cests

0.21.0 (2021-01-27)

Full Changelog

Added:

  • Introduce --noop option to run Noop mutators that does not change the source code (AST) #1465
  • Add support for @infection-ignore-all annotation #1468
  • Introduce --noop option to run Noop mutators that do not change the source code (AST) #1465
  • Add a describe command #1442
  • [MUTATOR] Add Concat operator mutator #1440
  • [MUTATOR] Add ConcatOperandRemoval operator mutator #1440
  • [MUTATOR] Add While expression mutator #1405
  • [MUTATOR] Add DoWhile expression mutator #1411
  • [MUTATOR] Add PregMatchRemoveFlags mutator - remove flags one by one #1462
  • [MUTATOR] Add PregMatchRemoveCaret #1455
  • [MUTATOR] Add PregMatchRemoveDollar mutator #1455
  • [MUTATOR] Add NullSafe operator mutator #1457

Changed:

  • [BC BREAK] Removed OneZeroInteger mutator in favor of IncrementInteger/DecrementInteger mutators
  • [BC BREAK] Rename @zero_iteration profile to the @loop #1407

0.20.0 (2020-11-01)

Full Changelog

Added:

  • Add github logger to be able to use Annotations on GitHub Actions #1368
  • Add --diff-git-filter & --git-diff-base options #1368
  • [MUTATOR] Implement UnwrapSubstr mutator #1400
  • [MUTATOR] Implement UnwrapStrRev mutator #1399
  • [MUTATOR] Implement UnwrapRtrim mutator #1396
  • [MUTATOR] Implement UnwrapStrIreplace mutator #1397
  • [MUTATOR] Implement UnwrapStrShuffle mutator #1398
  • [MUTATOR] Implement UnwrapLtrim mutator #1395
  • [MUTATOR] Add Ternary operator mutator #1390
  • [MUTATOR] Add Flip Coalesce operator mutator #1389

Changed:

  • Remove redundant Coalesce Mutator and rename FlipCoalesce to Coalesce #1391

0.19.0 (2020-10-28)

Full Changelog

Added:

  • [MUTATOR] Introduce YieldValue mutator #1342

Changed:

  • Drop support for PHP 7.3 #1340
  • Don't mutate $limit argument from 0 to -1 and from -1 to 0 in preg_split function #1347

Fixed:

  • PHPUnit 9.3 compatibility issue #1283
  • In Assert.php line 2042: Expected a value other than null #1357
  • Don't mutant $limit 0, -1 in preg_split #1345

0.18.0 (2020-10-18)

Full Changelog

Added:

  • Exclude mutations matching the source code by Regular Expression #1326
  • [MUTATOR] Add mutator to remove shared cases #1326

Changed:

  • Allow fractional values for timeout #1313

0.17.0 (2020-08-17)

Full Changelog

Added:

  • Set failOnRisky, failOnWarning to true if parameters are not already set #1280
  • Add JSON logger, useful for CI and analyzing results of Infection programmatically #1278
  • Do not mutate clean up functions #1285
  • Restrict installing with faulty versions of PHPUnit's coverage package #1295
  • Add --no-progress option to opt-out the CI detection #1261
  • InstanceOf_ mutator #1232

Changed:

  • Exclude mutations that are over specified time limit #1171
  • Decrement mutator makes array indexes negative #1270
  • Upgrade infection/include-interceptor to ^0.2.4 #1288
  • U for uncovered #1233
  • Round MSI scores #1190

Fixed:

  • symbolic link trouble + PHPUnit unknown #778

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:

  • Use textual version of log verbosity \265#265)

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