roave/backward-compatibility-check

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

8.9.0 2024-09-05 15:11 UTC

README

SWUbanner

Mutation testing badge Type Coverage Latest Stable Version License

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

先决条件/假设

  • 您的项目使用 git
  • 您的项目使用 composer.json 定义其依赖项
  • 所有源路径都在 composer.json 中的 "autoload" 部分中覆盖
  • 需要将更改提交到 git 以进行覆盖。您也可以实现自己的逻辑从项目中提取源代码和依赖项。

安装

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

使用Docker安装

您也可以使用Docker运行 roave-backward-compatibility-check

docker run --rm -v `pwd`:/app nyholm/roave-bc-check

用法

添加到持续集成管道中

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

vendor/bin/roave-backward-compatibility-check

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

注意:仅当您具有符合SemVer规范的 x.y.z 格式的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"

Nyholm Github Action

Tobias Nyholm 还提供了一个简单的GitHub操作,您可以在GitHub管道中使用。我们建议在大多数情况下使用此操作,因为它易于设置

.github/workflows/main.yml:

on: [push]
name: Test
jobs:
  roave-backwards-compatibility-check:
    name: Roave Backwards Compatibility Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: "Check for BC breaks"
        uses: docker://nyholm/roave-bc-check-ga

手动运行

为更改日志生成额外文档

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

配置

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