หน้านี้ให้ข้อมูลเกี่ยวกับวิธีจัดการความเข้ากันได้แบบย้อนหลัง ซึ่งรวมถึงการย้ายข้อมูลจากรุ่นหนึ่งไปยังอีกรุ่นหนึ่ง และวิธีสื่อสารการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้
Bazel กำลังพัฒนา เวอร์ชันย่อยที่เปิดตัวเป็นส่วนหนึ่งของเวอร์ชันหลัก LTS จะเข้ากันได้แบบย้อนหลังโดยสมบูรณ์ การเปลี่ยนแปลงระหว่างรุ่น LTS หลักอาจมีการเปลี่ยนแปลงที่เข้ากันไม่ได้ซึ่งอาศัยความพยายามในการย้ายข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการเผยแพร่ของ Bazel ได้ที่การประกาศการเปิดตัวการสนับสนุนระยะยาว (LTS) ของ Bazel
สรุป
- ขอแนะนำให้ใช้แฟล็ก
--incompatible_*
สำหรับการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ - สำหรับการแฟล็ก
--incompatible_*
ทุกรายการ ปัญหา GitHub จะอธิบายการเปลี่ยนแปลงลักษณะการทำงานและมุ่งเน้นที่การระบุสูตรการย้ายข้อมูล - API และลักษณะการทำงานที่ป้องกันโดยแฟล็ก
--experimental_*
อาจเปลี่ยนแปลงได้ทุกเมื่อ - ไม่เรียกใช้บิลด์เวอร์ชันที่ใช้งานจริงที่มีแฟล็ก
--experimental_*
หรือ--incompatible_*
วิธีปฏิบัติตามนโยบายนี้
- สำหรับผู้ใช้ Bazel - วิธีอัปเดต Bazel
- สำหรับผู้ร่วมให้ข้อมูล - แนวทางปฏิบัติแนะนำสำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้
- สำหรับผู้จัดการรุ่น - วิธีอัปเดตป้ายกำกับปัญหาและรุ่น
ฟังก์ชันการทำงานที่เสถียรคืออะไร
โดยทั่วไป API หรือลักษณะการทำงานที่ไม่มี Flag --experimental_...
จะถือว่ามีความเสถียรและฟีเจอร์ที่รองรับใน Bazel
ซึ่งรวมถึงเนื้อหาต่อไปนี้
- ภาษาและ API ของ Starlark
- กฎที่มาพร้อมกับ Bazel
- Bazel API เช่น Remote Execution API หรือ Build Event Protocol
- ธงและความหมายของธง
การเปลี่ยนแปลงและสูตรการย้ายข้อมูลที่ใช้ร่วมกันไม่ได้
สำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้ทุกครั้งในรุ่นใหม่ ทีม Bazel มีเป้าหมายที่จะจัดเตรียมสูตรการย้ายข้อมูลที่จะช่วยคุณอัปเดตโค้ด (ไฟล์ BUILD
และ .bzl
รวมถึงการใช้ Bazel ในสคริปต์ การใช้ Bazel API และอื่นๆ)
การเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้ควรมี Flag --incompatible_*
ที่เกี่ยวข้องและปัญหา GitHub ที่เกี่ยวข้อง
การสื่อสารการเปลี่ยนแปลงที่ไม่สามารถใช้ร่วมกันได้
แหล่งข้อมูลหลักของข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่เข้ากันไม่ได้คือปัญหาของ GitHub ที่ทำเครื่องหมายด้วยป้ายกำกับ"incompatible-change"
สำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้ทุกรายการ ปัญหาจะระบุสิ่งต่อไปนี้
- ชื่อแฟล็กที่ควบคุมการเปลี่ยนแปลงที่เข้ากันไม่ได้
- คำอธิบายฟังก์ชันการทำงานที่มีการเปลี่ยนแปลง
- สูตรการย้ายข้อมูล
เมื่อการเปลี่ยนแปลงที่เข้ากันไม่ได้พร้อมสำหรับการย้ายข้อมูลโดยมี Bazel ที่ HEAD (ด้วยเหตุนี้ พร้อมกับรุ่นถัดไปของ Bazel ที่เปิดตัวด้วย) ควรมีป้ายกำกับ migration-ready
กำกับไว้ ปัญหาการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้จะปิดลงเมื่อพลิกธงที่ใช้ร่วมกันไม่ได้ที่ HEAD