BackwardCompatibilityCheck

:ab: Tool to compare two revisions of a class API to check for BC breaks

Github stars Tracking Chart

Roave Backward Compatibility Check

Build Status Scrutinizer Code Quality Latest Stable Version License

A tool that can be used to verify BC breaks between two versions
of a PHP library.

Pre-requisites/assumptions

  • Your project uses git
  • Your project uses composer.json to define its dependencies

Installation

composer require --dev roave/backward-compatibility-check

Install with Docker

You can also use Docker to run roave-backward-compatibility-check:

docker run --rm -v `pwd`:/app nyholm/roave-bc-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.

Github action

You can use it as a Github Action like this:

.github/main.workflow

on: [push]
name: Test
jobs:
    roave_bc_check:
        name: Roave BC Check
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@master
            - name: fetch tags
              run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
            - name: Roave BC Check
              uses: docker://nyholm/roave-bc-check-ga

Running manually

To generate additional documentation for changelogs:

vendor/bin/roave-backward-compatibility-check --format=markdown > results.md

Documentation

If you need further guidance:

vendor/bin/roave-backward-compatibility-check --help

Configuration

There are currently no configuration options available.

Main metrics

Overview
Name With OwnerRoave/BackwardCompatibilityCheck
Primary LanguagePHP
Program languagePHP (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2017-10-27 12:40:27
Pushed At2025-05-31 09:56:15
Last Commit At
Release Count43
Last Release Name8.13.0 (Posted on 2025-02-06 11:47:51)
First Release Name1.0.0 (Posted on 2018-05-26 16:43:28)
用户参与
Stargazers Count584
Watchers Count10
Fork Count59
Commits Count1.7k
Has Issues Enabled
Issues Count147
Issue Open Count32
Pull Requests Count642
Pull Requests Open Count7
Pull Requests Close Count134
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private