PHPackages                             magento/magento-semver-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. magento/magento-semver-checker

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

magento/magento-semver-checker
==============================

PHP Semantic Versioning Checker

0.1.0(6mo ago)127MITPHPPHP ^8.0

Since Oct 23Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/magento/magento-semver-checker)[ Packagist](https://packagist.org/packages/magento/magento-semver-checker)[ Docs](https://github.com/tomzx/php-semver-checker)[ RSS](/packages/magento-magento-semver-checker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

Used the original package as it is already up to date.
======================================================

[](#used-the-original-package-as-it-is-already-up-to-date)

PHP Semantic Versioning Checker
===============================

[](#php-semantic-versioning-checker)

[![License](https://camo.githubusercontent.com/df0f38a8a9d910ef3db44e9471913fd2f70e54f22b34bc3274f9a09f658f8442/68747470733a2f2f706f7365722e707567782e6f72672f746f6d7a782f7068702d73656d7665722d636865636b65722f6c6963656e73652e737667)](https://packagist.org/packages/tomzx/php-semver-checker)[![Latest Stable Version](https://camo.githubusercontent.com/d77d57961ed152d437013871aad14eab379332fbb675dd239db30451b1087bbd/68747470733a2f2f706f7365722e707567782e6f72672f746f6d7a782f7068702d73656d7665722d636865636b65722f762f737461626c652e737667)](https://packagist.org/packages/tomzx/php-semver-checker)[![Latest Unstable Version](https://camo.githubusercontent.com/79984c6a184bcdf9dd59c598c8bf601c90abb5f703afe3ab80936298fa5e9e0d/68747470733a2f2f706f7365722e707567782e6f72672f746f6d7a782f7068702d73656d7665722d636865636b65722f762f756e737461626c652e737667)](https://packagist.org/packages/tomzx/php-semver-checker)[![Build Status](https://camo.githubusercontent.com/fdb79549cc9e5820bd9d154972e0f3f2eee505e92866df61151006d98430ffdf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f746f6d7a782f7068702d73656d7665722d636865636b65722f436f6e74696e756f7573253230696e746567726174696f6e2e737667)](https://github.com/tomzx/php-semver-checker/actions?query=workflow%3A%22Continuous+integration%22)[![Code Coverage](https://camo.githubusercontent.com/3f3d36e6af0dceeafe0fc4740d059718fb1b5ad5d55fe5b22811d3c6af62b1aa/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f746f6d7a782f7068702d73656d7665722d636865636b6572)](https://app.codecov.io/gh/tomzx/php-semver-checker/)[![Total Downloads](https://camo.githubusercontent.com/2cb4d4594b7cdfca2e335a710e8722ab3e568b1400bfbddec929d349a27a27c2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f746f6d7a782f7068702d73656d7665722d636865636b65722e737667)](https://packagist.org/packages/tomzx/php-semver-checker)

PHP Semantic Versioning Checker is a console/library which allows you to inspect a set of before and after source code.

After the inspection is completed, you are given a list of changes that have occurred between the two changesets following [Semantic Versioning 2.0.0](https://semver.org/). For each of these changes, the level of the change (MAJOR, MINOR, PATCH) will be given, as well as the location of the change (file and line number) and a reason as to why this level change is suggested.

For continuous integration
--------------------------

[](#for-continuous-integration)

If you'd like to use `php-semver-checker` in your CI pipeline, we recommend you look at [`php-semver-checker-git`](https://github.com/tomzx/php-semver-checker-git) which integrates with Git and will compare your latest changes with the latest Git tag of your repository.

Semantic Versioning 2.0.0 Overview
----------------------------------

[](#semantic-versioning-200-overview)

Given a version number MAJOR.MINOR.PATCH, increment the:

- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.

Getting started
---------------

[](#getting-started)

As this is still an alpha package, it is not suggested to include `php-semver-checker` directly in your composer.json. There are however a couple ways to use the tool:

1. **Preferred method** Download the [latest .phar build](http://psvc.coreteks.org/php-semver-checker.phar). Note that the .phar build is generally less bleeding edge than the following methods.
2. `php composer.phar create-project tomzx/php-semver-checker --stability=dev` will clone to a new php-semver-checker folder in your current working directory
3. `git clone https://github.com/tomzx/php-semver-checker.git` and `php composer.phar install` in the newly cloned directory.

See the example section for examples of how to use the tool.

### Building `php-semver-checker.phar`

[](#building-php-semver-checkerphar)

First, make sure you have [box](https://github.com/box-project/box2) installed. Then, in the base directory, you can run the following command which will generate the `php-semver-checker.phar` file.

```
box build

```

Current ruleset &amp; verification codes
----------------------------------------

[](#current-ruleset--verification-codes)

See [`docs/Ruleset.md`](docs/Ruleset.md) for an exhaustive list of currently supported (and to come) ruleset.

Verification codes are a mean to uniquely identify a semantic versioning trigger (a condition which upon detection, requires your code changes to be versioned).

Example
-------

[](#example)

```
php bin/php-semver-checker compare tests/fixtures/before tests/fixtures/after

Suggested semantic versioning change: MAJOR

Class (MAJOR)
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+
| Level | Location                                                     | Target                                                     | Reason                                     | Code |
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+
| MAJOR | tests\fixtures\before\ClassRemoved.php:5                     | fixtures\ClassRemoved                                      | Class was removed.                         | V005 |
| MAJOR | tests\fixtures\after\ClassMethodAdded.php:7                  | fixtures\ClassMethodAdded::publicMethod                    | [public] Method has been added.            | V015 |
| MAJOR | tests\fixtures\after\ClassMethodAdded.php:12                 | fixtures\ClassMethodAdded::protectedMethod                 | [protected] Method has been added.         | V016 |
| MAJOR | tests\fixtures\after\ClassMethodParameterChanged.php:7       | fixtures\ClassMethodParameterChanged::publicMethod         | [public] Method parameter changed.         | V010 |
| MAJOR | tests\fixtures\after\ClassMethodParameterChanged.php:12      | fixtures\ClassMethodParameterChanged::protectedMethod      | [protected] Method parameter changed.      | V011 |
| MAJOR | tests\fixtures\before\ClassMethodRemoved.php:7               | fixtures\ClassMethodRemoved::publicMethod                  | [public] Method has been removed.          | V006 |
| MAJOR | tests\fixtures\before\ClassMethodRemoved.php:12              | fixtures\ClassMethodRemoved::protectedMethod               | [protected] Method has been removed.       | V007 |
| MAJOR | tests\fixtures\after\ClassPropertyAdded.php:7                | fixtures\ClassPropertyAdded::$a                            | [public] Property has been added.          | V019 |
| MAJOR | tests\fixtures\after\ClassPropertyAdded.php:9                | fixtures\ClassPropertyAdded::$b                            | [protected] Property has been added.       | V020 |
| MAJOR | tests\fixtures\before\ClassPropertyRemoved.php:7             | fixtures\ClassPropertyRemoved::$a                          | [public] Property has been removed.        | V008 |
| MAJOR | tests\fixtures\before\ClassPropertyRemoved.php:9             | fixtures\ClassPropertyRemoved::$b                          | [protected] Property has been removed.     | V009 |
| MINOR | tests\fixtures\after\ClassAdded.php:5                        | fixtures\ClassAdded                                        | Class was added.                           | V014 |
| PATCH | tests\fixtures\after\ClassMethodAdded.php:17                 | fixtures\ClassMethodAdded::privateMethod                   | [private] Method has been added.           | V028 |
| PATCH | tests\fixtures\after\ClassMethodImplementationChanged.php:7  | fixtures\ClassMethodImplementationChanged::publicMethod    | [public] Method implementation changed.    | V023 |
| PATCH | tests\fixtures\after\ClassMethodImplementationChanged.php:12 | fixtures\ClassMethodImplementationChanged::protectedMethod | [protected] Method implementation changed. | V024 |
| PATCH | tests\fixtures\after\ClassMethodImplementationChanged.php:17 | fixtures\ClassMethodImplementationChanged::privateMethod   | [private] Method implementation changed.   | V025 |
| PATCH | tests\fixtures\after\ClassMethodParameterChanged.php:17      | fixtures\ClassMethodParameterChanged::privateMethod        | [private] Method parameter changed.        | V031 |
| PATCH | tests\fixtures\after\ClassMethodParameterNameChanged.php:7   | fixtures\ClassMethodParameterNameChanged::publicMethod     | [public] Method parameter name changed.    | V060 |
| PATCH | tests\fixtures\after\ClassMethodParameterNameChanged.php:12  | fixtures\ClassMethodParameterNameChanged::protectedMethod  | [protected] Method parameter name changed. | V061 |
| PATCH | tests\fixtures\after\ClassMethodParameterNameChanged.php:17  | fixtures\ClassMethodParameterNameChanged::privateMethod    | [private] Method parameter name changed.   | V062 |
| PATCH | tests\fixtures\before\ClassMethodRemoved.php:17              | fixtures\ClassMethodRemoved::privateMethod                 | [private] Method has been removed.         | V029 |
| PATCH | tests\fixtures\after\ClassPropertyAdded.php:11               | fixtures\ClassPropertyAdded::$c                            | [private] Property has been added.         | V026 |
| PATCH | tests\fixtures\before\ClassPropertyRemoved.php:11            | fixtures\ClassPropertyRemoved::$c                          | [private] Property has been removed.       | V027 |
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+

Function (MAJOR)
+-------+----------------------------------------------------------+-----------------------------------------------------------------------+----------------------------------+------+
| Level | Location                                                 | Target                                                                | Reason                           | Code |
+-------+----------------------------------------------------------+-----------------------------------------------------------------------+----------------------------------+------+
| MAJOR | tests\fixtures\before\FunctionRemoved.php:5              | fixtures\functionRemoved::functionRemoved                             | Function has been removed.       | V001 |
| MAJOR | tests\fixtures\before\FunctionParameterChanged.php:5     | fixtures\functionParameterChanged::functionParameterChanged           | Function parameter changed.      | V002 |
| MINOR | tests\fixtures\after\FunctionAdded.php:5                 | fixtures\functionAdded::functionAdded                                 | Function has been added.         | V003 |
| PATCH | tests\fixtures\after\FunctionImplementationChanged.php:5 | fixtures\functionImplementationChanged::functionImplementationChanged | Function implementation changed. | V004 |
| PATCH | tests\fixtures\before\FunctionParameterNameChanged.php:5 | fixtures\functionParameterNameChanged::functionParameterNameChanged   | Function parameter name changed. | V067 |
+-------+----------------------------------------------------------+-----------------------------------------------------------------------+----------------------------------+------+

Interface (MAJOR)
+-------+---------------------------------------------------------------+------------------------------------------------------------+-----------------------------------------+------+
| Level | Location                                                      | Target                                                     | Reason                                  | Code |
+-------+---------------------------------------------------------------+------------------------------------------------------------+-----------------------------------------+------+
| MAJOR | tests\fixtures\before\InterfaceRemoved.php:5                  | fixtures\InterfaceRemoved                                  | Interface was removed.                  | V033 |
| MAJOR | tests\fixtures\after\InterfaceMethodAdded.php:7               | fixtures\InterfaceMethodAdded::newMethod                   | [public] Method has been added.         | V034 |
| MAJOR | tests\fixtures\after\InterfaceMethodParameterChaged.php:7     | fixtures\InterfaceMethodParameterChanged::newMethod        | [public] Method parameter changed.      | V036 |
| MAJOR | tests\fixtures\before\InterfaceMethodRemoved.php:7            | fixtures\InterfaceMethodRemoved::newMethod                 | [public] Method has been removed.       | V035 |
| MINOR | tests\fixtures\after\InterfaceAdded.php:5                     | fixtures\InterfaceAdded                                    | Interface was added.                    | V032 |
| PATCH | tests\fixtures\after\InterfaceMethodParameterNameChaged.php:7 | fixtures\InterfaceMethodParameterNameChanged::publicMethod | [public] Method parameter name changed. | V063 |
+-------+---------------------------------------------------------------+------------------------------------------------------------+-----------------------------------------+------+

Trait (MAJOR)
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+
| Level | Location                                                     | Target                                                     | Reason                                     | Code |
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+
| MAJOR | tests\fixtures\before\TraitRemoved.php:5                     | fixtures\TraitRemoved                                      | Trait was removed.                         | V037 |
| MAJOR | tests\fixtures\after\TraitMethodAdded.php:7                  | fixtures\TraitMethodAdded::publicMethod                    | [public] Method has been added.            | V047 |
| MAJOR | tests\fixtures\after\TraitMethodAdded.php:12                 | fixtures\TraitMethodAdded::protectedMethod                 | [protected] Method has been added.         | V048 |
| MAJOR | tests\fixtures\after\TraitMethodAdded.php:17                 | fixtures\TraitMethodAdded::privateMethod                   | [private] Method has been added.           | V057 |
| MAJOR | tests\fixtures\after\TraitMethodParameterChanged.php:7       | fixtures\TraitMethodParameterChanged::publicMethod         | [public] Method parameter changed.         | V042 |
| MAJOR | tests\fixtures\after\TraitMethodParameterChanged.php:12      | fixtures\TraitMethodParameterChanged::protectedMethod      | [protected] Method parameter changed.      | V043 |
| MAJOR | tests\fixtures\after\TraitMethodParameterChanged.php:17      | fixtures\TraitMethodParameterChanged::privateMethod        | [private] Method parameter changed.        | V059 |
| MAJOR | tests\fixtures\before\TraitMethodRemoved.php:7               | fixtures\TraitMethodRemoved::publicMethod                  | [public] Method has been removed.          | V038 |
| MAJOR | tests\fixtures\before\TraitMethodRemoved.php:12              | fixtures\TraitMethodRemoved::protectedMethod               | [protected] Method has been removed.       | V039 |
| MAJOR | tests\fixtures\before\TraitMethodRemoved.php:17              | fixtures\TraitMethodRemoved::privateMethod                 | [private] Method has been removed.         | V058 |
| MAJOR | tests\fixtures\after\TraitPropertyAdded.php:7                | fixtures\TraitPropertyAdded::$a                            | [public] Property has been added.          | V049 |
| MAJOR | tests\fixtures\after\TraitPropertyAdded.php:9                | fixtures\TraitPropertyAdded::$b                            | [protected] Property has been added.       | V050 |
| MAJOR | tests\fixtures\after\TraitPropertyAdded.php:11               | fixtures\TraitPropertyAdded::$c                            | [private] Property has been added.         | V055 |
| MAJOR | tests\fixtures\before\TraitPropertyRemoved.php:7             | fixtures\TraitPropertyRemoved::$a                          | [public] Property has been removed.        | V040 |
| MAJOR | tests\fixtures\before\TraitPropertyRemoved.php:9             | fixtures\TraitPropertyRemoved::$b                          | [protected] Property has been removed.     | V041 |
| MAJOR | tests\fixtures\before\TraitPropertyRemoved.php:11            | fixtures\TraitPropertyRemoved::$c                          | [private] Property has been removed.       | V056 |
| MINOR | tests\fixtures\after\TraitAdded.php:5                        | fixtures\TraitAdded                                        | Trait was added.                           | V046 |
| PATCH | tests\fixtures\after\TraitMethodImplementationChanged.php:7  | fixtures\TraitMethodImplementationChanged::publicMethod    | [public] Method implementation changed.    | V052 |
| PATCH | tests\fixtures\after\TraitMethodImplementationChanged.php:12 | fixtures\TraitMethodImplementationChanged::protectedMethod | [protected] Method implementation changed. | V053 |
| PATCH | tests\fixtures\after\TraitMethodImplementationChanged.php:17 | fixtures\TraitMethodImplementationChanged::privateMethod   | [private] Method implementation changed.   | V054 |
| PATCH | tests\fixtures\after\TraitMethodParameterNameChanged.php:7   | fixtures\TraitMethodParameterNameChanged::publicMethod     | [public] Method parameter name changed.    | V064 |
| PATCH | tests\fixtures\after\TraitMethodParameterNameChanged.php:12  | fixtures\TraitMethodParameterNameChanged::protectedMethod  | [protected] Method parameter name changed. | V065 |
| PATCH | tests\fixtures\after\TraitMethodParameterNameChanged.php:17  | fixtures\TraitMethodParameterNameChanged::privateMethod    | [private] Method parameter name changed.   | V066 |
+-------+--------------------------------------------------------------+------------------------------------------------------------+--------------------------------------------+------+

[Scanned files] Before: 26, After: 27, Identical: 0
Time: 1.43 seconds, Memory: 5.123 MB
```

Contributing
------------

[](#contributing)

### Adding new rules

[](#adding-new-rules)

- Add the rules to the `docs/Ruleset.md` document
- Run `php scripts/extract-rules-from-ruleset.php` to generate an up to date array to paste in the `Configuration/LevelMapping.php` file
- Update the documentation @

License
-------

[](#license)

The code is licensed under the [MIT license](http://choosealicense.com/licenses/mit/). See [LICENSE](LICENSE).

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance67

Regular maintenance activity

Popularity10

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity30

Early-stage or recently created project

 Bus Factor1

Top contributor holds 74.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

201d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dbcf615f9bf1c6b766e11376c5e76245da3b22bfc132da6a85c1e185f31ddd26?d=identicon)[mage2-team](/maintainers/mage2-team)

---

Top Contributors

[![tomzx](https://avatars.githubusercontent.com/u/188960?v=4)](https://github.com/tomzx "tomzx (181 commits)")[![emmetog](https://avatars.githubusercontent.com/u/1182891?v=4)](https://github.com/emmetog "emmetog (25 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (22 commits)")[![nochso](https://avatars.githubusercontent.com/u/6887618?v=4)](https://github.com/nochso "nochso (8 commits)")[![Ocramius](https://avatars.githubusercontent.com/u/154256?v=4)](https://github.com/Ocramius "Ocramius (3 commits)")[![glo71317](https://avatars.githubusercontent.com/u/85922880?v=4)](https://github.com/glo71317 "glo71317 (3 commits)")[![GrahamCampbell](https://avatars.githubusercontent.com/u/2829600?v=4)](https://github.com/GrahamCampbell "GrahamCampbell (1 commits)")[![mikeSimonson](https://avatars.githubusercontent.com/u/907613?v=4)](https://github.com/mikeSimonson "mikeSimonson (1 commits)")

---

Tags

semvercheckersemantic versioning

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/magento-magento-semver-checker/health.svg)

```
[![Health](https://phpackages.com/badges/magento-magento-semver-checker/health.svg)](https://phpackages.com/packages/magento-magento-semver-checker)
```

###  Alternatives

[tomzx/php-semver-checker

PHP Semantic Versioning Checker

434232.8k2](/packages/tomzx-php-semver-checker)[roave/backward-compatibility-check

Tool to compare two revisions of a public API to check for BC breaks

5953.3M56](/packages/roave-backward-compatibility-check)[coenjacobs/mozart

Composes all dependencies as a package inside a WordPress plugin

4723.6M20](/packages/coenjacobs-mozart)[liip/rmt

Release Management Tool: a handy tool to help releasing new version of your software

457448.7k74](/packages/liip-rmt)[shivas/versioning-bundle

Symfony application versioning, simple console command to manage version (with providers e.g. git tag) of your application using Semantic Versioning 2.0.0 recommendations

1121.2M1](/packages/shivas-versioning-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
