การติดตั้ง / อัปเดต Bazel โดยใช้ Bazelisk

การติดตั้ง Bazel

Bazelisk เป็นวิธีที่ แนะนำในการติดตั้ง Bazel ใน Ubuntu, Windows และ macOS โดยจะดาวน์โหลดและติดตั้ง Bazel เวอร์ชันที่เหมาะสมโดยอัตโนมัติ ใช้ Bazelisk หากคุณต้องการสลับไปมาระหว่าง Bazel เวอร์ชันต่างๆ ขึ้นอยู่กับไดเรกทอรีการทำงานปัจจุบัน หรือต้องการให้ Bazel อัปเดตเป็นเวอร์ชันล่าสุดอยู่เสมอ

ดูรายละเอียดเพิ่มเติมได้ที่ README อย่างเป็นทางการ

การอัปเดต Bazel

Bazel มีนโยบายความเข้ากันได้แบบย้อนกลับ (ดูคำแนะนำสำหรับการเปิดตัวการเปลี่ยนแปลงที่เข้ากันไม่ได้ หากคุณ เป็นผู้เขียนการเปลี่ยนแปลงดังกล่าว) หน้านั้นสรุปแนวทางปฏิบัติแนะนำเกี่ยวกับวิธีทดสอบและย้ายข้อมูลโปรเจ็กต์ของคุณด้วยการเปลี่ยนแปลงที่เข้ากันไม่ได้ที่จะเกิดขึ้น และวิธีแสดงความคิดเห็นต่อผู้เขียนการเปลี่ยนแปลงที่เข้ากันไม่ได้

การจัดการ Bazel เวอร์ชันด้วย Bazelisk

Bazelisk ช่วยคุณจัดการ Bazel เวอร์ชันต่างๆ

Bazelisk ทำสิ่งต่อไปนี้ได้

  • อัปเดต Bazel เป็น LTS หรือเวอร์ชันที่เผยแพร่ล่าสุดโดยอัตโนมัติ
  • สร้างโปรเจ็กต์ด้วย Bazel เวอร์ชันที่ระบุไว้ในไฟล์ .bazelversion เช็คอินไฟล์นั้นลงในการควบคุมเวอร์ชันเพื่อให้มั่นใจว่าสามารถสร้างบิลด์ซ้ำได้
  • ช่วยย้ายข้อมูลโปรเจ็กต์ของคุณสำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้ (ดูด้านบน)
  • ลองใช้เวอร์ชันที่พร้อมให้ใช้งานจริงได้อย่างง่ายดาย

กระบวนการย้ายข้อมูลที่แนะนำ

ภายในอัปเดตย่อยของ LTS เวอร์ชันใดก็ตาม คุณสามารถเตรียมโปรเจ็กต์ให้พร้อมสำหรับเวอร์ชันถัดไปได้โดยไม่ทำให้เกิดการเปลี่ยนแปลงที่เข้ากันไม่ได้กับเวอร์ชันปัจจุบัน อย่างไรก็ตาม อาจมีการเปลี่ยนแปลงที่เข้ากันไม่ได้แบบย้อนกลับระหว่าง LTS เวอร์ชันหลัก

ทำตามกระบวนการนี้เพื่อย้ายข้อมูลจากเวอร์ชันหลักหนึ่งไปยังอีกเวอร์ชันหลักหนึ่ง

  1. อ่านบันทึกประจำรุ่นเพื่อดูคำแนะนำเกี่ยวกับวิธีย้ายข้อมูลไปยังเวอร์ชันถัดไป
  2. การเปลี่ยนแปลงที่สำคัญซึ่งเข้ากันไม่ได้ควรมี Flag --incompatible_* ที่เกี่ยวข้อง และปัญหาที่เกี่ยวข้องใน GitHub ดังนี้
    • คำแนะนำในการย้ายข้อมูลมีอยู่ในปัญหาที่เกี่ยวข้องใน GitHub
    • มีเครื่องมือสำหรับการย้ายข้อมูลการเปลี่ยนแปลงที่เข้ากันไม่ได้บางรายการ เช่น Buildifier
    • รายงานปัญหาการย้ายข้อมูลโดยแสดงความคิดเห็นในปัญหาที่เกี่ยวข้องใน GitHub

หลังจากการย้ายข้อมูล คุณสามารถสร้างโปรเจ็กต์ต่อไปได้โดยไม่ต้องกังวลเกี่ยวกับความเข้ากันได้แบบย้อนหลังจนกว่าจะมีการเผยแพร่เวอร์ชันหลักถัดไป