Skip to content

Releases: phpmetrics/PhpMetrics

v3.0.0rc6

08 Feb 11:28
Compare
Choose a tag to compare

[3.0.0-rc6] - 2024-02-08

Updates

  • Upgrade to nikic/php-parser v5. Related BC Breaks are solved. #503
  • Upgrade to PHPUnit 10.5
  • Temporary remove Psalm as not compatible with nikic/php-parser v5.
  • Remove Qodana as licence is mandatory

v3.0.0rc5

17 Jan 11:04
Compare
Choose a tag to compare

[3.0.0-rc5] - 2024-01-17

Fixes

  • PHP8 Issue Uncaught TypeError: round() #501
  • [Internal] Unit tests that were not updated from latest changes
  • [Internal] docker-releasing process when built-in docker image is no longer available.

v3.0.0rc4

15 Sep 14:25
Compare
Choose a tag to compare
v3.0.0rc4 Pre-release
Pre-release

[3.0.0-rc4] - 2023-09-15

New features

  • Add cyclomatic complexity for each method in a class
  • Complexity table slightly updated to more comfortable table width

Updates

  • Upgrade to PHPUnit 10.3
  • Upgrade to Psalm 5.15
  • Upgrade to Qodana 2023.2-eap

v3.0.0rc3

20 Apr 13:37
Compare
Choose a tag to compare
v3.0.0rc3 Pre-release
Pre-release

[3.0.0-rc3] - 2023-04-20

Fixed

  • Fatal error when analyzing snippets like $a->{$b} or $a->{<some_expression>}.
  • Fatal error when analyzing snippets like $a->{$b}() or $a->{<some_expression>}().

Updates

  • Update to PHPUnit 10.1

v3.0.0rc2

17 Apr 11:44
Compare
Choose a tag to compare
v3.0.0rc2 Pre-release
Pre-release

[3.0.0-rc2] - 2023-04-17

New features

  • Documentation: Fix #491 by adding the possibility of running PhpMetrics via sh rather than php, for some OS.

Fixed

  • Fatal error when analyzing snippets like $a->$b() or $c().
  • Special versions are now taken into account on artefacts/bintray.json when a new release comes out.

v3.0.0rc1

11 Apr 07:22
Compare
Choose a tag to compare
v3.0.0rc1 Pre-release
Pre-release

[3.0.0-rc1] - 2023-04-11

This new major version is containing lots of internal re-architecture processes in the source code, and upgrades the
internal quality of PhpMetrics to a new level. Nevertheless, it contains also some BC Breaks and some metrics are
remove. Please take a look at the detailed changelog below if you experiment any trouble.

BC Break

  • PhpMetrics 3.0 is requiring PHP 8.1 minimum. To parse projects that are not yet in PHP 8.1, please use a docker
    installation based on a PHP 8.1 Docker Image
  • Git and JUnit plugins are no longer allowed in the configuration file

Removed

  • Installation and usage from Debian package. Please use the phar, composer, or docker instead
  • Metric removed: Git related metrics
  • Metric removed: PHPUnit related metrics
  • Metric removed: PageRank metric
  • Metric removed: On System Complexity, totalStructuralComplexity, totalDataComplexity and totalSystemComplexity.
  • Metric removed: On class-method enumeration, nbGetters and nbSetters are removed as no particular metric needs them.

New features

  • Internal: Install a real dedicated QA system to secure PhpMetrics as mch as possible
  • Internal: QA System is composed of PHP_CodeSniffer, PHPUnit, PHP Infection, PHPStan, Psalm and Qodana
  • Internal: Make possible to create releases with suffixed names
  • Minor UX/UI improvements on the HTML report.

Fixed

  • Internal: QA completely upgraded. PHPCS, PHPStan, Psalm and Qodana are no longer having errors except on baseline.
    Coverage is very close to 100%. All unit tests are passing. Mutation Score >94%. Some improvements are yet to come
  • Metric calculations: Fix LCoM calculation that was not able to understand promoted properties in constructor.
  • Metric calculations: Ignore PHP Attributes in the detection of getters and setters. This fixes LCoM calculation.
  • Metric calculations: Improve calculation on Afferent Coupling and Efferent Coupling (+ related metrics) thanks to
    enlarged context of external classes usages detection.
  • Metric calculations: Take NullSafeMethodCall ($x?->y()) into account for WeightMethodCount and Cyclomatic Complexity calculation.
  • Metric calculations: Take NullSafePropertyFetch ($x?->y) into account for WeightMethodCount and Cyclomatic Complexity calculation.
  • Metric calculations: Take newly introduced match structure into account for WeightMethodCount and Cyclomatic Complexity calculation.
  • Metric calculations: Improve KanDefect metrics as match are now took into account as number of selects, along with switches.
  • Metric calculations: On System Complexity, relative complexities are now calculated including NullSafeMethodCall ($x?->y()).

v2.8.1

24 Mar 10:21
v2.8.1
e279f73
Compare
Choose a tag to compare

Fixing issue with relative path when using YAML configuration

v2.8.0

23 Mar 21:10
v2.8.0
6e1b0d6
Compare
Choose a tag to compare

Major release with

New features

  • allows to search patterns of code. Instead of providing our own rules, now we can add dynamic rules for violations.
  • allows also to use yaml for configuration.
  • adds a --metrics option
  • excludes getters and setters for ccn and lcom calculation
  • adds a composer option
  • adds a new --report-summary-json option

Fixes

  • Issue with columns in HTML report

v2.7.3

27 Jun 13:24
v2.7.3
52e52f2
Compare
Choose a tag to compare

Include by default composer.json files located in the root dir

v2.7.2

27 Jun 13:08
v2.7.2
237048f
Compare
Choose a tag to compare
v2.7.2