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

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 8.0 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

การติดตั้ง 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 ที่เกี่ยวข้อง

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