PHPackages                             phauthentic/bc-check - 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. phauthentic/bc-check

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

phauthentic/bc-check
====================

Backward compatibility checker for PHP APIs

1.0.0-rc3(3mo ago)02.0k↓43.2%1GPL-3.0-or-laterPHPPHP ^8.3CI passing

Since Feb 2Pushed 3mo agoCompare

[ Source](https://github.com/Phauthentic/backward-compatibility-checker)[ Packagist](https://packagist.org/packages/phauthentic/bc-check)[ RSS](/packages/phauthentic-bc-check/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (22)Versions (9)Used By (0)

BC Check - Backward Compatibility Checker for PHP
=================================================

[](#bc-check---backward-compatibility-checker-for-php)

BC Check analyzes PHP code between two git commits to detect backward compatibility (BC) breaking changes using AST parsing. It helps library maintainers follow [Semantic Versioning](https://semver.org/) by identifying changes that could break dependent code.

> "With a system of the size and importance of API, it is necessary to have some formalized rules to govern how updates are incorporated while still keeping the API stable." — [Semantic Versioning 2.0.0](https://semver.org/)

Features 💎
----------

[](#features-)

- **BC Break Detection:**
    - Detects removed public/protected classes, methods, properties, and constants
    - Detects method signature changes (parameters, types, defaults)
    - Detects return type changes
    - Detects visibility reductions
    - Detects added `final`, `abstract`, `static`, `readonly` modifiers
    - Detects interface implementation changes
    - Detects parent class changes
- **Flexible Configuration:**
    - YAML-based configuration
    - Regex patterns for include/exclude filtering
    - Custom source directories
    - External detector loading for custom BC break detection
- **Multiple Output Formats:**
    - Human-readable text output
    - JSON output for programmatic use
    - GitHub Actions annotations
    - SARIF (Static Analysis Results Interchange Format)
    - Checkstyle XML
    - JUnit XML
    - GitLab Code Quality
- **CI/CD Ready:**
    - Exit codes for build success/failure
    - GitHub Actions, GitLab CI, CircleCI, Jenkins examples
    - Docker support

Installation ⚙️
---------------

[](#installation-️)

```
composer require --dev phauthentic/bc-check
```

Or download the PHAR from the [releases page](https://github.com/Phauthentic/bc-check/releases).

Documentation 📚
---------------

[](#documentation-)

- [Installation](docs/Installation.md) - Install via Composer, PHAR, or Docker
- [Usage](docs/Usage.md) - CLI usage, examples, output formats
- [Configuration](docs/Configuration.md) - YAML config options, regex patterns
- [Detectors](docs/Detectors.md) - List of all detected BC breaks
- [Output Formats](docs/Output-Formats.md) - Detailed format examples and specifications
- [Custom Detectors](docs/Custom-Detectors.md) - Create your own detectors
- [CI Integration](docs/CI-Integration.md) - GitHub Actions, GitLab CI, etc.
- [Docker External Projects](docs/Docker-External-Projects.md) - Run via Docker against legacy codebases
- [Development](docs/Development.md) - Development setup and workflows

Quick Start 🚀
-------------

[](#quick-start-)

```
# Basic usage
vendor/bin/bc-check check /path/to/repo v1.0.0 v2.0.0

# With configuration file
vendor/bin/bc-check check /path/to/repo v1.0.0 v2.0.0 --config=bc-check.yaml

# JSON output
vendor/bin/bc-check check /path/to/repo v1.0.0 v2.0.0 --format=json
```

For more usage examples and options, see the [Usage Guide](docs/Usage.md).

Reporting Issues 🪲
------------------

[](#reporting-issues-)

If you find a bug or have a feature request, please open an issue on the [GitHub repository](https://github.com/Phauthentic/bc-check/issues/new).

When reporting issues, please provide:

- PHP version
- BC Check version
- Minimal code example that reproduces the issue
- Expected vs actual behavior

License ⚖️
----------

[](#license-️)

Copyright Florian Krämer

Licensed under the [MIT License](LICENSE.txt).

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance81

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Every ~1 days

Total

4

Last Release

99d ago

PHP version history (2 changes)1.0.0-rc1PHP ^8.4

1.0.0-rc3PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/2bef35c03b7865d9cad45c22e54eb6fe8f5fc84a4ff64d47cc0f7a1ef28dbe85?d=identicon)[floriankraemer](/maintainers/floriankraemer)

---

Top Contributors

[![floriankraemer](https://avatars.githubusercontent.com/u/4996022?v=4)](https://github.com/floriankraemer "floriankraemer (24 commits)")

---

Tags

analyzerbackward-compatibilityphptools

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/phauthentic-bc-check/health.svg)

```
[![Health](https://phpackages.com/badges/phauthentic-bc-check/health.svg)](https://phpackages.com/packages/phauthentic-bc-check)
```

###  Alternatives

[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M568](/packages/symfony-maker-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)

PHPackages © 2026

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