Uma ferramenta que pode ser usada para verificar as quebras de BC entre duas versões de uma biblioteca PHP.
gitcomposer.json para definir suas dependências"autoload" em composer.jsongit para ser coberto. Você pode implementar sua própria lógica para extrair fontes e dependências de um projeto. composer require --dev roave/backward-compatibility-check Você também pode usar o Docker para executar roave-backward-compatibility-check :
docker run --rm -v ` pwd ` :/app nyholm/roave-bc-check O uso típico de pretendido é apenas adicionar roave-backward-compatibility-check à sua construção de IC:
vendor/bin/roave-backward-compatibility-check Isso detectará automaticamente a última versão menor marcada e comparará a API com a HEAD atual. Se forem encontradas quebras de BC, a ferramenta retornará um status diferente de zero, que na maioria dos sistemas de IC fará com que a compilação falhe.
Nota: Detectar a versão base funciona apenas se você tiver tags Git no formato xyz compatível com Semver, como 1.2.3 .
Nota: Como essa ferramenta se baseia em tags, você precisa garantir que as tags sejam buscadas como parte do seu pipeline de CI. Por exemplo, em uma ação do github, observe o uso de 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 também oferece uma ação simples do GitHub que você pode usar no seu pipeline do Github. Recomendamos isso na maioria dos casos, pois é simples de configurar:
.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-gaPara gerar documentação adicional para Changelogs:
vendor/bin/roave-backward-compatibility-check --format=markdown > results.md Ao executar em ações do GitHub, é endossado para usar o formato de saída --format=github-actions :
vendor/bin/roave-backward-compatibility-check --format=github-actionsSe você precisar de mais orientações:
vendor/bin/roave-backward-compatibility-check --helpAtualmente, não há opções de configuração disponíveis.