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