รุ่นที่เผยแพร่

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

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

การกำหนดเวอร์ชันรุ่น

Bazel ใช้ major.minor.patch Semantic การกำหนดเวอร์ชัน

  • รุ่นหลักมีฟีเจอร์ที่เข้ากันไม่ได้กับ รุ่นก่อนหน้า เวอร์ชันหลักแต่ละเวอร์ชันของ Bazel คือรุ่น LTS
  • รุ่นย่อยมีการแก้ไขข้อบกพร่องและฟีเจอร์ต่างๆ ที่เข้ากันได้แบบย้อนหลัง มีการส่งกลับมาจาก Branch หลัก
  • เวอร์ชันแพตช์มีการแก้ไขข้อบกพร่องร้ายแรง

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

เช่น รุ่นใหม่ของแต่ละประเภทจะมีหมายเลขเวอร์ชันดังต่อไปนี้

  • หลัก: 6.0.0
  • ผู้เยาว์: 6.1.0
  • แพตช์: 6.1.2
  • รุ่นทดลอง: 7.0.0-pre.20230502.1

ระยะการสนับสนุน

สำหรับ Bazel เวอร์ชันหลักแต่ละเวอร์ชันจะมีการสนับสนุน 4 ขั้นตอน ดังนี้

  • เปิดตัวแล้ว: เวอร์ชันหลักนี้ยังอยู่ในรุ่นทดลอง ทีม Bazel เผยแพร่รุ่นต่อเนื่องจาก HEAD
  • ใช้งานอยู่: เวอร์ชันหลักนี้เป็นรุ่น LTS ที่ใช้งานอยู่ในปัจจุบัน ต้นบาเซล ทีมจะรองรับฟีเจอร์สำคัญๆ และการแก้ไขข้อบกพร่องในการเปิดตัวย่อย
  • การบำรุงรักษา: เวอร์ชันหลักนี้เป็น LTS เวอร์ชันเก่าที่อยู่ระหว่างการบำรุงรักษา ทีม Bazel สัญญาแค่เพียงการแก้ไขข้อบกพร่องที่สำคัญของ ปัญหาด้านความปลอดภัยและปัญหาด้านความเข้ากันได้กับระบบปฏิบัติการใน LTS รุ่นนี้
  • เลิกใช้งาน: ทีม Bazel ไม่ได้ให้การสนับสนุนสำหรับผู้เผยแพร่โฆษณาหลักนี้อีกต่อไป ผู้ใช้ทุกคนควรย้ายข้อมูลไปยัง Bazel LTS รุ่นใหม่

ช่วงเวลาการเปิดตัว

Bazel เผยแพร่รุ่นสำหรับแทร็กการเผยแพร่ 2 แทร็กเป็นประจำ

การเปิดตัวทีละน้อย

  • การเปิดตัวทีละรอบเป็นการประสานงานกับการเปิดตัว Google Blaze และได้รับการเผยแพร่แล้ว จาก HEAD ทุก 2 สัปดาห์ นี่คือตัวอย่างของ Bazel LTS รุ่นถัดไป
  • การเปิดตัวแบบค่อยเป็นค่อยไปสามารถจัดส่งการเปลี่ยนแปลงที่เข้ากันไม่ได้ Flag ที่ใช้ร่วมกันไม่ได้มีดังนี้ แนะนำสำหรับการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบที่สำคัญ การเปิดตัวการเปลี่ยนแปลงที่เข้ากันไม่ได้ ควรเป็นไปตามความเข้ากันได้แบบย้อนหลัง

รุ่น LTS

  • รุ่นหลัก: คาดว่ารุ่น LTS ใหม่จะถูกตัดจากช่วง HEAD โดยประมาณ ทุก 12 เดือน เมื่อรุ่น LTS ใหม่เปิดตัว จะเข้าสู่สถานะ "ใช้งานอยู่" ทันที และ LTS รุ่นก่อนหน้าจะเข้าสู่ขั้นตอนการบำรุงรักษา
  • การเปิดตัวย่อย: คาดว่าเวอร์ชันใหม่ย่อยในแทร็ก LTS ที่ใช้งานอยู่ เผยแพร่ 1 ครั้งทุก 2 เดือน
  • เผยแพร่แพตช์: เวอร์ชันแพตช์ใหม่สำหรับรุ่น LTS ในสถานะใช้งานอยู่และ คาดว่าจะมีการเผยแพร่ขั้นตอนการบำรุงรักษาตามข้อบกพร่องที่สำคัญ
  • รุ่น Bazel LTS เข้าสู่ระยะการเลิกใช้งานหลังจากอยู่ใน ระยะการบำรุงรักษาเป็นเวลา 2 ปี

สำหรับการเผยแพร่ที่วางแผนไว้ โปรดดูที่การเผยแพร่ ปัญหา ใน GitHub

เมทริกซ์การสนับสนุน

รุ่น LTS ระยะการสนับสนุน เวอร์ชันล่าสุด สิ้นสุดการสนับสนุน
บาเซล 7 ทบเวลา ตรวจสอบหน้าการเผยแพร่ใน GitHub ไม่มี
บาเซล 6 ใช้งานอยู่ 6.4.0 ธ.ค. 2025
บาเซล 5 การบำรุงรักษา 5.4.1 ม.ค. 2025
บาเซล 4 การบำรุงรักษา 4.2.4 Jan 2024

คุณสามารถดูผลงานทั้งหมดของ Bazel ได้ในรุ่น ใน GitHub

กระบวนการเผยแพร่และ นโยบาย

สำหรับการเปิดตัวทีละขั้น กระบวนการไม่ซับซ้อน คือประมาณทุกๆ 2 สัปดาห์ ระบบจะสร้างรุ่นใหม่ขึ้น เพื่อให้สอดคล้องกับเกณฑ์พื้นฐานเดียวกันกับเวอร์ชันภายในของ Google ปล่อย Blaze เนื่องจากกำหนดการเผยแพร่ที่รวดเร็ว เราจึงไม่ได้เปลี่ยนกลับการเปลี่ยนแปลงใดๆ ไปจนถึงการเปิดตัวทีละน้อย

สำหรับรุ่น LTS ให้ทำตามขั้นตอนและนโยบายด้านล่างนี้

  1. กำหนดสัญญาผูกมัดพื้นฐานสำหรับการเผยแพร่
    • สำหรับรุ่น LTS รุ่นหลักรายการใหม่ ค่าคอมมิตพื้นฐานคือ HEAD ของ Branch
    • สำหรับรุ่นย่อยหรือแพตช์ การคอมมิตพื้นฐานคือส่วนหัวของ เวอร์ชันล่าสุดในปัจจุบันของรุ่น LTS รุ่นเดียวกัน
  2. สร้าง Branch ของรุ่นในชื่อ release-<version> จากเกณฑ์พื้นฐาน คอมมิต
  3. การเปลี่ยนแปลง Backport ผ่าน PR ไปยัง Branch ของรุ่น
    • ชุมชนสามารถแนะนำสัญญาผูกมัดบางอย่างที่จะถูกย้ายกลับมาได้โดยการตอบกลับ "@bazel-io flag" ปัญหา GitHub หรือ PR ที่เกี่ยวข้องเพื่อทำเครื่องหมายว่ามีโอกาส ของบล็อกการเผยแพร่ ทีมงาน Bazel จะคัดแยกสิ่งเหล่านี้และตัดสินใจว่าจะ โอนคอมมิตอีกครั้ง
    • เฉพาะคอมมิตที่เข้ากันได้แบบย้อนหลังใน Branch หลักเท่านั้นที่สามารถโอนย้อนกลับได้ ยอมรับการเปลี่ยนแปลงเล็กน้อยเพิ่มเติมเพื่อแก้ไขความขัดแย้งของการรวม
  4. ระบุตัวบล็อกการเผยแพร่และแก้ไขปัญหาที่พบใน Branch ของรุ่น
  5. สร้างผู้สมัครรุ่นใหม่จากฝ่ายรุ่นเมื่อทราบทั้งหมดแล้ว ระบบจะแก้ไขปัญหาที่ตัวบล็อกการเผยแพร่
    • จะประกาศผู้ชนะวันที่ bazel-discuss ทีม Bazel จะตรวจสอบรายงานข้อบกพร่องของชุมชนของผู้สมัคร
    • หากตรวจพบตัวบล็อกการเผยแพร่ใหม่ ให้กลับไปที่ขั้นตอนสุดท้ายและ สร้างผู้สมัครรายใหม่หลังจากแก้ไขปัญหาทั้งหมดเรียบร้อยแล้ว
    • ไม่อนุญาตให้เพิ่มฟีเจอร์ใหม่ใน Branch ของรุ่นหลังจาก สร้างผู้สมัครรุ่นแรกแล้ว
  6. พุชผู้สมัครรับเลือกตั้งเป็นผลงานอย่างเป็นทางการหากไม่มีการเปิดตัวเพิ่มเติม พบตัวบล็อก
    • สำหรับการเผยแพร่แพตช์ ให้พุชรุ่นหลังจากผ่านไปอย่างน้อย 2 วันทำการ ผู้สมัครคนสุดท้ายว่างอยู่
    • สำหรับการเผยแพร่ที่สำคัญและรุ่นย่อย ให้พุชการเผยแพร่หลังจาก 2 วันทำการ ผู้สมัครเป็นรายล่าสุดออกเผยแพร่แล้ว แต่ไม่เกิน 1 สัปดาห์หลังจากนั้น ผู้สมัครคนแรกออกเผยแพร่แล้ว
    • การเปิดตัวจะทำงานในวันที่เป็นธุรกิจในวันถัดไปเท่านั้น วัน
    • จะประกาศการเปิดตัวในวันที่ bazel-discuss ทีมงาน Bazel ติดตามและจัดการกับรายงานข้อบกพร่องของชุมชนสำหรับ

รายงานการเกิดปัญหาซ้ำ

หากผู้ใช้พบการถดถอยในรุ่นใหม่ของ Bazel, ผู้สมัครรับเลือกตั้ง หรือแม้กระทั่ง Bazel ที่ HEAD โปรดรายงานข้อบกพร่องใน GitHub คุณสามารถใช้ Bazelisk เพื่อคัดแยกผู้ก่อเหตุออกและใส่ข้อมูลนี้ไว้ในข้อบกพร่อง รายงาน

ตัวอย่างเช่น หากบิลด์ของคุณสำเร็จด้วย Bazel 6.1.0 แต่ล้มเหลวด้วย รุ่น 6.2.0 คุณสามารถเลือกที่จะแยก

bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar

คุณตั้งค่าให้เรียกใช้ตัวแปรสภาพแวดล้อม BAZELISK_SHUTDOWN หรือ BAZELISK_CLEAN ได้ คำสั่ง Bazel ที่เกี่ยวข้องเพื่อรีเซ็ตสถานะของบิลด์หากจำเป็น ทำให้ปัญหาเกิดซ้ำ ดูรายละเอียดเพิ่มเติมได้ในเอกสารเกี่ยวกับ Bazelisk Bisect

อย่าลืมอัปเกรด Bazelisk เป็นเวอร์ชันล่าสุดเพื่อใช้ Bisect

ความเข้ากันได้ของกฎ

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