ความเข้ากันได้แบบย้อนหลัง

วันที่ รายงานปัญหา ดูแหล่งที่มา ตอนกลางคืน · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

หน้านี้จะให้ข้อมูลเกี่ยวกับวิธีจัดการกับความเข้ากันได้แบบย้อนหลัง รวมถึงการย้ายข้อมูลจากรุ่นหนึ่งไปยังอีกรุ่นหนึ่งและวิธีสื่อสาร การเปลี่ยนแปลงที่เข้ากันไม่ได้

Bazel กำลังพัฒนา เวอร์ชันย่อยที่เปิดตัวเป็นส่วนหนึ่งของ LTS เวอร์ชันหลักจะเข้ากันได้กับเวอร์ชันเก่าอย่างเต็มรูปแบบ การเปลี่ยนแปลงระหว่างรุ่น LTS หลักอาจมีการเปลี่ยนแปลงที่เข้ากันไม่ได้ซึ่งจําเป็น การย้ายข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับช่วงเวลาการเปิดตัว Bazel ใช้งานได้, ดู ประกาศเปิดตัวการสนับสนุนระยะยาว (LTS) ของ Bazel

สรุป

  1. ขอแนะนำให้ใช้แฟล็ก --incompatible_* สำหรับการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ
  2. สำหรับการแฟล็ก --incompatible_* ทุกๆ รายการ ระบบจะอธิบายปัญหา GitHub พฤติกรรมที่เปลี่ยนไปและมีจุดประสงค์เพื่อมอบสูตรในการย้ายข้อมูล
  3. API และลักษณะการทำงานที่ป้องกันโดยแฟล็ก --experimental_* อาจเปลี่ยนแปลงได้ทุกเมื่อ
  4. ไม่เรียกใช้บิลด์เวอร์ชันที่ใช้งานจริงที่มีแฟล็ก --experimental_* หรือ --incompatible_*

วิธีปฏิบัติตามนโยบายนี้

ฟังก์ชันการทำงานที่เสถียรคืออะไร

โดยทั่วไป ระบบจะพิจารณา API หรือลักษณะการทำงานที่ไม่มี Flag --experimental_... ที่เสถียรและมีการรองรับใน Bazel

ซึ่งรวมถึงเนื้อหาต่อไปนี้

  • ภาษาและ API ของ Starlark
  • กฎที่มาพร้อมกับ Bazel
  • Bazel API เช่น Remote Execution API หรือ Build Event Protocol
  • ธงและความหมายของธง

การเปลี่ยนแปลงและสูตรการย้ายข้อมูลที่ใช้ร่วมกันไม่ได้

ทุกการเปลี่ยนแปลงที่เข้ากันไม่ได้ในรุ่นใหม่ ทีม Bazel มีเป้าหมายที่จะ สูตรการย้ายข้อมูลที่ช่วยคุณอัปเดตโค้ด (BUILD และ .bzl ไฟล์ รวมถึงการใช้ Bazel ในสคริปต์ การใช้ Bazel API และอื่นๆ)

การเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้ควรมีแฟล็ก --incompatible_* ที่เกี่ยวข้องและ GitHub ที่ตรงกัน

การสื่อสารการเปลี่ยนแปลงที่ไม่สามารถใช้ร่วมกันได้

แหล่งข้อมูลหลักของข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่เข้ากันไม่ได้คือปัญหาของ GitHub มีเครื่องหมาย "ไม่สามารถใช้ร่วมกันได้" กำกับอยู่ ป้ายกำกับ [label]

สำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้ทุกรายการ ปัญหาจะระบุสิ่งต่อไปนี้

  • ชื่อแฟล็กที่ควบคุมการเปลี่ยนแปลงที่เข้ากันไม่ได้
  • คำอธิบายฟังก์ชันการทำงานที่มีการเปลี่ยนแปลง
  • สูตรการย้ายข้อมูล

เมื่อการเปลี่ยนแปลงที่เข้ากันไม่ได้พร้อมสำหรับการย้ายข้อมูลโดยมี Bazel ที่ HEAD (ด้วยเหตุนี้ พร้อมกับรุ่นถัดไปของ Bazel ที่เปิดตัวด้วย) ควรมีป้ายกำกับ migration-ready กำกับไว้ ปัญหาการเปลี่ยนแปลงที่ใช้ร่วมกันไม่ได้จะปิดลงเมื่อพลิกธงที่ใช้ร่วมกันไม่ได้ที่ HEAD