Bazel 4.0 ขึ้นไปรองรับ 2 แทร็กการเผยแพร่ ได้แก่ การเผยแพร่แบบการสนับสนุนระยะยาว (LTS) และการเผยแพร่แบบต่อเนื่อง หน้านี้อธิบายเกี่ยวกับการกำหนดเวอร์ชันใน Bazel, ประเภทของรุ่น และประโยชน์ของรุ่นเหล่านั้นสำหรับผู้ใช้และผู้มีส่วนร่วมของ Bazel
ทำความเข้าใจการแยกเวอร์ชันใน Bazel
Bazel ใช้รูปแบบการกำหนดเวอร์ชันทางอรรถศาสตร์ major.minor.patch
- รุ่นหลักมีฟีเจอร์ที่ไม่เข้ากันได้กับรุ่นก่อนหน้า
- รุ่นย่อยจะมีฟีเจอร์ใหม่ที่เข้ากันได้กับเวอร์ชันเก่า
- รุ่นแพตช์จะมีการเปลี่ยนแปลงเล็กน้อยและการแก้ไขข้อบกพร่อง
โดยใช้เวอร์ชัน 3.5.1 เป็นตัวอย่าง เวอร์ชันใหม่ของแต่ละประเภทจะมีหมายเลขเวอร์ชันดังนี้
- สำคัญ: 4.0
- ผู้เยาว์: 3.6
- แพตช์: 3.5.2
วงจรการเผยแพร่ของ Bazel
Bazel เผยแพร่รุ่นต่างๆ อย่างต่อเนื่อง เวอร์ชันหลักทุกเวอร์ชันเป็นรุ่น LTS คุณเลือกที่จะอัปเดตตามลําดับการเผยแพร่ได้ ไม่ว่าจะเป็นการอัปเดตจาก LTS เวอร์ชันหนึ่งไปยังอีกเวอร์ชันหนึ่ง หรืออัปเดตตามการเผยแพร่เวอร์ชันย่อยแต่ละเวอร์ชัน
รูปภาพแสดงทั้งรุ่นที่ใช้งานอยู่และ LTS รวมถึงการรองรับที่คาดไว้สำหรับแต่ละรุ่น
รูปที่ 1 เวอร์ชันแบบต่อเนื่องและ LTS
สาขารุ่น
เวอร์ชันหลักแต่ละเวอร์ชันจะกลายเป็นสาขาการพัฒนาแยกกันเมื่อเผยแพร่ คุณจะรับการแก้ไขข้อบกพร่องร้ายแรงในสาขานั้นได้โดยไม่ต้องอัปเดตเป็นรุ่น Bazel ที่ส่วนหัว ฟีเจอร์เพิ่มเติมในสาขาเวอร์ชันหลักจะกลายเป็นรุ่นย่อย และเวอร์ชันสูงสุดในสาขาคือเวอร์ชันที่รองรับ
แต่ละรุ่นของ Bazel จะจับคู่กับรายการเวอร์ชันกฎที่แนะนำซึ่งทํางานร่วมกันได้ และมีความเข้ากันได้แบบย้อนหลังอย่างเข้มงวดภายในแต่ละสาขา
เวอร์ชัน LTS
เวอร์ชัน LTS คือเวอร์ชันหลัก (เช่น 4.0) ที่รองรับเป็นเวลา 3 ปีหลังจากเปิดตัว เวอร์ชันหลักจะเปิดตัวทุกๆ 9 เดือนโดยประมาณ
การพัฒนาอย่างต่อเนื่องในสาขารุ่นจะส่งผลให้เกิดเวอร์ชันย่อย
คุณเลือกปักหมุดโปรเจ็กต์เป็นรุ่นหลักและอัปเดตเป็นเวอร์ชันใหม่ในภายหลังได้ ซึ่งจะช่วยให้คุณมีเวลาดูตัวอย่างการเปลี่ยนแปลงที่กําลังจะเกิดขึ้นและปรับตัวล่วงหน้า
การเผยแพร่แบบเป็นขั้นๆ
มีการแยกรุ่นแบบต่อเนื่องออกจากสาขาหลักของ Bazel เป็นระยะๆ ความถี่ในการเผยแพร่นี้เกี่ยวข้องกับการนำส่งรุ่นตัวอย่างของ Bazel เวอร์ชันหลักรุ่นถัดไปอย่างต่อเนื่อง ซึ่งจะซิงค์กับรุ่น Blaze ภายในของ Google
โปรดทราบว่ารุ่นที่ใช้งานอยู่ใหม่อาจมีการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบซึ่งเข้ากันไม่ได้กับรุ่นก่อนหน้า
รุ่นแบบต่อเนื่องได้รับการทดสอบในชุดทดสอบของ Bazel ใน Bazel CI และชุดทดสอบภายในของ Google คุณอาจใช้ Flag ที่เข้ากันไม่ได้เพื่อลดความยุ่งยากในการย้ายข้อมูลไปยังฟังก์ชันการทำงานใหม่ แต่ลักษณะการทำงานเริ่มต้นอาจเปลี่ยนแปลงไปตามรุ่นที่เผยแพร่ (คุณยังใช้รุ่นที่พร้อมใช้งานแบบต่อเนื่องเพื่อดูตัวอย่างเวอร์ชัน LTS ถัดไปได้ด้วย ตัวอย่างเช่น 5.0.0-pre.20210604.6
อิงตามรุ่นที่พร้อมใช้งานในวันที่ 04-06-2021 และแสดงถึงเหตุการณ์สำคัญในการเปิดตัว 5.0 LTS)
คุณสามารถดาวน์โหลดรุ่นที่ใช้งานจริงล่าสุดได้จาก GitHub หรือจะตั้งค่า Bazelisk v1.9.0 (หรือเวอร์ชันที่ใหม่กว่า) เพื่อใช้ชื่อเวอร์ชันที่เจาะจงหรือตัวระบุ "แบบต่อเนื่อง" ซึ่งจะใช้รุ่นแบบต่อเนื่องล่าสุดก็ได้ ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบของ Bazelisk
การอัปเดตเวอร์ชัน
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการอัปเดตเวอร์ชัน Bazel ได้ที่หัวข้อการอัปเดต Bazel
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการมีส่วนร่วมในการอัปเดต Bazel เวอร์ชันใหม่ได้ที่การมีส่วนร่วมใน Bazel