หน้านี้มีข้อมูลเกี่ยวกับวิธีจัดการความเข้ากันได้แบบย้อนหลัง รวมถึงการย้ายจากรุ่นหนึ่งไปยังอีกรุ่นหนึ่งและวิธีสื่อสารการเปลี่ยนแปลงที่เข้ากันไม่ได้
Bazel กำลังพัฒนา เวอร์ชันย่อยที่เผยแพร่โดยเป็นส่วนหนึ่งของเวอร์ชันหลัก LTS จะเข้ากันได้กับเวอร์ชันเก่าอย่างสมบูรณ์ รุ่นหลักรุ่นใหม่ของ LTS อาจมีการเปลี่ยนแปลงที่เข้ากันไม่ได้ ซึ่งต้องอาศัยความพยายามในการย้ายข้อมูล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรุ่นการเผยแพร่ของ Bazel โปรดไปที่หน้ารุ่น รุ่น
สรุป
- ขอแนะนำให้ใช้แฟล็ก
--incompatible_*
สำหรับการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ - สำหรับทุกแฟล็ก
--incompatible_*
ปัญหา GitHub จะอธิบายการเปลี่ยนแปลงของลักษณะการทำงานและมีไว้เพื่อระบุสูตรการย้ายข้อมูล - ขอแนะนำให้ส่ง Flag ที่ใช้ร่วมกันไม่ได้ไปยัง LTS รุ่นล่าสุดโดยไม่ต้องเปิดใช้แฟล็กโดยค่าเริ่มต้น
- 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 และอื่นๆ)
การเปลี่ยนแปลงที่เข้ากันไม่ได้ควรมีแฟล็ก --incompatible_*
ที่เกี่ยวข้องและปัญหา GitHub ที่เกี่ยวข้อง
ขอแนะนำให้ส่ง Flag ที่ใช้ร่วมกันไม่ได้และการเปลี่ยนแปลงที่เกี่ยวข้องกลับไปยัง LTS รุ่นล่าสุดโดยไม่ต้องเปิดใช้ Flag โดยค่าเริ่มต้น วิธีนี้ช่วยให้ผู้ใช้ย้ายข้อมูลเพื่อหาการเปลี่ยนแปลงที่เข้ากันไม่ได้ก่อนที่ LTS รุ่นถัดไปจะพร้อมใช้งาน
การสื่อสารเกี่ยวกับการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้
แหล่งข้อมูลหลักของข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้คือปัญหาของ GitHub ที่มีการทำเครื่องหมายป้ายกำกับ"ใช้ร่วมกันไม่ได้"
สำหรับการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้ ปัญหาจะระบุข้อมูลต่อไปนี้
- ชื่อธงที่ควบคุมการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้
- คำอธิบายฟังก์ชันการทำงานที่มีการเปลี่ยนแปลง
- สูตรการย้ายข้อมูล
เมื่อการเปลี่ยนแปลงที่เข้ากันไม่ได้พร้อมให้ย้ายข้อมูลด้วย Bazel ที่ HEAD (ดังนั้น พร้อมกับการเปิดตัว Bazel รุ่นถัดไปด้วย) ควรมีการทำเครื่องหมายป้ายกำกับ migration-ready
ระบบจะปิดปัญหาการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้เมื่อมีการกลับ Flag ที่ใช้ร่วมกันไม่ได้ที่ HEAD