ondrejmirtes/backward-compatibility-check

用于比较公共API的两个版本,以检查向后兼容性破坏的工具

7.3.0.1 2022-10-26 07:57 UTC

README

Mutation testing badge Latest Stable Version License

一个可用于验证PHP库两个版本之间向后兼容性破坏的工具。

此分支根据 PHPStan向后兼容性承诺 修改内部类和方法解释。

先决条件/假设

  • 您的项目使用 git
  • 您的项目使用 composer.json 来定义其依赖项
  • 所有源路径都在 composer.json"autoload" 部分中覆盖
  • 需要提交到 git 才能被覆盖。尽管如此,您也可以实现自己的逻辑来从项目中提取源代码和依赖项。

安装

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

使用

添加到持续集成管道

典型用法是将 roave-backward-compatibility-check 添加到您的CI构建中

vendor/bin/roave-backward-compatibility-check

这将自动检测最后标记的次要版本,并将API与当前 HEAD 进行比较。如果发现任何BC破坏,该工具将返回非零状态,在大多数CI系统中将导致构建失败。

注意:仅当您具有符合SemVer格式的git标签(如1.2.3)时,检测基本版本才有效。

注意:由于此工具依赖于标签,您需要确保标签作为您CI管道的一部分被获取。例如,在GitHub操作中,请注意使用 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"

手动运行

为变更日志生成额外文档

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

GitHub Actions

当在GitHub Actions中运行时,建议使用 --format=github-actions 输出格式

vendor/bin/roave-backward-compatibility-check --format=github-actions

文档

如果您需要更多指导

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

配置

目前没有可用的配置选项。