เครื่องมือที่สามารถใช้ในการตรวจสอบการแบ่ง 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 ปัจจุบัน หากพบ BC break ใด ๆ เครื่องมือจะส่งกลับสถานะที่ไม่เป็นศูนย์ซึ่งในระบบ CI ส่วนใหญ่จะทำให้การสร้างล้มเหลว
หมายเหตุ: การตรวจจับเวอร์ชันพื้นฐานใช้งานได้ก็ต่อเมื่อคุณมีแท็ก GIT ในรูปแบบ xyz ที่สอดคล้องกับ SEMVER เช่น 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ขณะนี้ยังไม่มีตัวเลือกการกำหนดค่า