Инструмент, который можно использовать для проверки разрывов BC между двумя версиями библиотеки PHP.
gitcomposer.json для определения его зависимостей"autoload" в composer.jsongit , чтобы быть покрытыми. Вы можете реализовать свою собственную логику для извлечения источников и зависимостей из проекта. composer require --dev roave/backward-compatibility-check Вы также можете использовать 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 приведет к выходу из строя.
ПРИМЕЧАНИЕ. Обнаружение базовой версии работает только в том случае, если у вас есть теги GIT в формате SEMVER-совместимости xyz , например, 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 " 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 он одобрен для использования формата вывода --format=github-actions :
vendor/bin/roave-backward-compatibility-check --format=github-actionsЕсли вам нужно дальнейшее руководство:
vendor/bin/roave-backward-compatibility-check --helpВ настоящее время нет вариантов конфигурации.