ondrejmirtes / backward-compatibility-check
Tool to compare two revisions of a public API to check for BC breaks
Installs: 8 456
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 61
pkg:composer/ondrejmirtes/backward-compatibility-check
Requires
- php: ~8.1.0 || ~8.2.0
 - ext-json: *
 - azjezz/psl: ^2.0.4
 - composer/composer: ^2.4.2
 - nikolaposa/version: ^4.1.0
 - ocramius/package-versions: ^2.5.1
 - ondrejmirtes/better-reflection: ^6.3.0
 - symfony/console: ^6.1.5
 
Requires (Dev)
- doctrine/coding-standard: ^10.0.0
 - php-standard-library/psalm-plugin: ^2.0.2
 - phpunit/phpunit: ^9.5.25
 - psalm/plugin-phpunit: ^0.17.0
 - roave/security-advisories: dev-master
 - squizlabs/php_codesniffer: ^3.7.1
 - vimeo/psalm: ^4.29.0
 
Conflicts
- revolt/event-loop: <0.2.5
 - symfony/process: <5.3.7
 
- 7.3.x-dev
 - 7.3.0.1
 - 7.3.0
 - 7.1.0.3
 - 7.1.0.2
 - 7.1.0.1
 - 6.1.1
 - 6.0.1
 - 5.0.x-dev
 - 5.0.9
 - 5.0.8
 - 5.0.7
 - 5.0.6
 - 5.0.5
 - 5.0.4
 - 5.0.3
 - 5.0.2
 - 5.0.1
 - 5.0.0
 - 4.4.0
 - 4.3.0
 - 4.2.1
 - 4.2.0
 - 4.1.0
 - 4.0.0
 - 3.0.0
 - 2.1.0
 - 2.0.0
 - 1.1.1
 - 1.1.0
 - 1.0.3
 - 1.0.2
 - 1.0.1
 - 1.0.0
 - dev-dependabot/composer/composer/composer-2.5.4
 - dev-dependabot/github_actions/ridedott/merge-me-action-2.10.43
 - dev-dependabot/composer/phpunit/php-code-coverage-9.2.24
 - dev-dependabot/composer/symfony/string-6.2.5
 - dev-dependabot/composer/symfony/console-6.2.5
 - dev-dependabot/composer/slevomat/coding-standard-8.8.0
 - dev-dependabot/github_actions/laminas/laminas-ci-matrix-action-1.22.1
 - dev-dependabot/github_actions/laminas/laminas-continuous-integration-action-1.32.0
 - dev-master
 - dev-dependabot/composer/infection/infection-0.22.0
 - dev-dependabot/composer/doctrine/coding-standard-9.0.0
 - dev-dependabot/add-v2-config-file
 - dev-named-parameter-support
 - dev-feature/totally-typed
 
This package is auto-updated.
Last update: 2025-10-17 19:40:30 UTC
README
A tool that can be used to verify BC breaks between two versions of a PHP library.
This fork changes internal classes and methods interpretation according to PHPStan backward compatibility promise.
Pre-requisites/assumptions
- Your project uses 
git - Your project uses 
composer.jsonto define its dependencies - All source paths are covered by an 
"autoload"section incomposer.json - Changes need to be committed to 
gitto be covered. You can implement your own logic to extract sources and dependencies from a project though. 
Installation
composer require --dev ondrejmirtes/backward-compatibility-check
Usage
Adding to a continuous integration pipeline
The typical intended usage is to just add roave-backward-compatibility-check
to your CI build:
vendor/bin/roave-backward-compatibility-check
This will automatically detect the last minor version tagged, and
compare the API against the current HEAD. If any BC breaks are found,
the tool returns a non-zero status, which on most CI systems will cause
the build to fail.
NOTE: detecting the base version only works if you have git tags in
the SemVer-compliant x.y.z format, such as 1.2.3.
NOTE: since this tool relies on tags, you need to make sure tags are fetched
as part of your CI pipeline. For example in a GitHub action, note the use of
fetch-depth: 0:
jobs: roave-backwards-compatibility-check: name: Roave Backwards Compatibility Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: "Install PHP" uses: shivammathur/setup-php@v2 with: php-version: "8.0" - name: "Install dependencies" run: "composer install" - name: "Check for BC breaks" run: "vendor/bin/roave-backward-compatibility-check"
Running manually
To generate additional documentation for changelogs:
vendor/bin/roave-backward-compatibility-check --format=markdown > results.md
GitHub Actions
When running in GitHub Actions, it is endorsed to use the --format=github-actions output format:
vendor/bin/roave-backward-compatibility-check --format=github-actions
Documentation
If you need further guidance:
vendor/bin/roave-backward-compatibility-check --help
Configuration
There are currently no configuration options available.