Mô hình phát hành

Báo cáo vấn đề Xem nguồn Hằng đêm · 7.2 · 7.1 · 7 · 6,5 · 6,4

Như đã thông báo trong blog ban đầu bài đăng, Bazel Các phiên bản 4.0 trở lên hỗ trợ 2 kênh phát hành: cập nhật cho phiên bản mới và bản phát hành hỗ trợ dài hạn (LTS). Trang này trình bày thông tin mới nhất thông tin về mô hình phát hành của Bazel.

Ma trận hỗ trợ

Bản phát hành LTS (hỗ trợ dài hạn) Giai đoạn hỗ trợ Phiên bản mới nhất Kết thúc hỗ trợ
Bazel 8 Tuyển sinh không có kỳ hạn Kiểm tra trang phát hành luân phiên Không áp dụng
Bazel 7 Đang hoạt động 7.2.1 Tháng 12 năm 2026
Bazel 6 Đang bảo trì 6.5.0 Tháng 12 năm 2025
Bazel 5 Đang bảo trì 5.4.1 Tháng 1 năm 2025
Bazel 4 Không được dùng nữa 4.2.4 Tháng 1 năm 2024

Bạn có thể tìm thấy tất cả bản phát hành LTS của Bazel trên bản phát hành trên GitHub.

Tạo phiên bản phát hành

Bazel sử dụng một major.minor.patch Ngữ nghĩa Lược đồ tạo phiên bản.

  • Một bản phát hành chính chứa các tính năng không tương thích ngược với bản phát hành trước đó. Mỗi phiên bản Bazel chính là một bản phát hành LTS (hỗ trợ dài hạn).
  • Một bản phát hành nhỏ chứa các tính năng và bản sửa lỗi có khả năng tương thích ngược được điều chỉnh cho phiên bản cũ từ nhánh chính.
  • Bản phát hành bản vá chứa các bản sửa lỗi quan trọng.

Ngoài ra, phiên bản phát hành trước được biểu thị bằng cách thêm dấu gạch nối và hậu tố ngày của số phiên bản lớn tiếp theo.

Ví dụ: một bản phát hành mới của mỗi loại sẽ dẫn đến số phiên bản sau:

  • Lớn: 6.0.0
  • Ít: 6.1.0
  • Bản vá: 6.1.2
  • Trước khi phát hành: 7.0.0-pre.20230502.1

Các cấp độ hỗ trợ

Mỗi phiên bản Bazel chính, có 4 giai đoạn hỗ trợ:

  • Rolling: Nhóm Bazel, phiên bản chính này vẫn đang ở giai đoạn phát hành trước xuất bản các bản phát hành cuốn hút từ HEAD.
  • Đang hoạt động: Phiên bản chính này là bản phát hành LTS (hỗ trợ dài hạn) hiện đang hoạt động. Quần đảo Bazel điều chỉnh cho phiên bản cũ các tính năng quan trọng và bản sửa lỗi vào các bản phát hành nhỏ.
  • Bảo trì: Phiên bản chính này là một bản phát hành LTS cũ đang trong giai đoạn bảo trì . Nhóm Bazel chỉ hứa hẹn sẽ điều chỉnh cho phiên bản cũ các bản sửa lỗi quan trọng cho các vấn đề về bảo mật và khả năng tương thích với hệ điều hành trong bản phát hành LTS này.
  • Ngừng hoạt động: Nhóm Bazel không còn cung cấp dịch vụ hỗ trợ cho lớn này tất cả người dùng nên di chuyển sang bản phát hành Bazel LTS mới hơn.

Tần suất phát hành

Bazel thường xuyên ra mắt bản phát hành cho 2 kênh phát hành.

Bản phát hành chính thức

  • Các bản phát hành được sắp xếp được phối hợp với bản phát hành Google Blaze và được phát hành từ HEAD khoảng hai tuần một lần. Đây là bản xem trước của LTS Bazel tiếp theo bản phát hành.
  • Bản phát hành rộng rãi có thể gửi những thay đổi không tương thích. Cờ không tương thích: được đề xuất cho những thay đổi lớn có thể gây lỗi, triển khai các thay đổi không tương thích cần tuân theo khả năng tương thích ngược .

Bản phát hành LTS (hỗ trợ dài hạn)

  • Bản phát hành chính: Bản phát hành LTS mới dự kiến sẽ bị cắt bớt khỏi HEAD khoảng mỗi 12 tháng. Sau khi ra mắt bản phát hành LTS mới, bản phát hành đó sẽ ngay lập tức chuyển sang trạng thái Đang hoạt động và bản phát hành LTS trước đó sẽ chuyển sang giai đoạn Bảo trì.
  • Bản phát hành nhỏ: Các phiên bản nhỏ mới trên kênh LTS đang hoạt động dự kiến sẽ được phát hành 2 tháng một lần.
  • Bản phát hành bản vá: Các phiên bản bản vá mới cho bản phát hành LTS ở trạng thái Đang hoạt động và Chúng tôi dự kiến sẽ phát hành các giai đoạn bảo trì theo yêu cầu đối với những lỗi nghiêm trọng bản sửa lỗi.
  • Bản phát hành Bazel LTS chuyển sang giai đoạn Không dùng nữa sau khi nằm trong Giai đoạn bảo trì trong 2 năm.

Để biết các bản phát hành dự kiến, vui lòng xem bản phát hành của chúng tôi vấn đề trên GitHub.

Quy trình phát hành & chính sách của Google

Đối với phiên bản phát hành luân phiên, quy trình rất đơn giản: cứ khoảng hai tuần một lần, bản phát hành mới được tạo, phù hợp với cùng một đường cơ sở như Bản phát hành linh hoạt. Do lịch phát hành nhanh, chúng tôi không điều chỉnh cho phiên bản cũ bất kỳ thay đổi nào cho đến bản phát hành luân phiên.

Đối với bản phát hành LTS, quy trình và chính sách dưới đây được tuân thủ:

  1. Xác định cam kết cơ sở cho bản phát hành.
    • Đối với một bản phát hành LTS lớn mới, lệnh xác nhận cơ sở là phần đầu của nhánh.
    • Đối với một bản phát hành nhỏ hoặc bản vá, cam kết cơ sở là TIÊU ĐỀ của phiên bản mới nhất hiện tại của cùng một bản phát hành LTS (hỗ trợ dài hạn).
  2. Tạo một nhánh phát hành mang tên release-<version> từ đường cơ sở cam kết.
  3. Điều chỉnh cho phiên bản cũ thông qua PR đối với nhánh phát hành.
    • Cộng đồng có thể đề xuất một số cam kết để điều chỉnh cho phiên bản cũ bằng cách trả lời "@bazel-io flag" về các vấn đề hoặc PR có liên quan trên GitHub để đánh dấu là tiềm năng trình chặn phát hành, nhóm Bazel phân loại chúng và quyết định xem điều chỉnh cho phiên bản cũ các cam kết.
    • Chỉ những cam kết có khả năng tương thích ngược trên nhánh main mới có thể được điều chỉnh cho phiên bản cũ, Có thể chấp nhận các thay đổi nhỏ bổ sung để giải quyết xung đột hợp nhất.
  4. Điều chỉnh cho phiên bản cũ bằng cách sử dụng sự cố yêu cầu chọn Cherry-Pick đối với người bảo trì Bazel.

    • Nhân viên bảo trì của Bazel có thể yêu cầu chọn(các) cam kết cụ thể vào một nhánh phát hành. Quá trình này bắt đầu bằng cách tạo một yêu cầu cherry-pick trên GitHub. Sau đây là cách thực hiện.

      1. Mở yêu cầu chọn lọc
      2. Điền thông tin chi tiết về yêu cầu
        • Tiêu đề: Cung cấp một tiêu đề ngắn gọn và mang tính mô tả cho yêu cầu.
        • (Các) mã cam kết: Nhập(các) mã của(các) cam kết mà bạn muốn quả anh đào. Nếu có nhiều lần thay đổi, hãy tách riêng bằng dấu phẩy.
        • Danh mục: Chỉ định loại của yêu cầu.
        • (Các) người đánh giá: Nếu có nhiều người đánh giá, hãy tách riêng những người đánh giá trên GitHub ID bằng dấu phẩy.
      3. Thiết lập mốc quan trọng
        • Tìm "Mốc quan trọng" và nhấp vào cài đặt.
        • Chọn trình chặn phát hành X.Y.Z phù hợp. Hành động này kích hoạt bot chọn anh đào để xử lý yêu cầu của bạn cho "release-X.Y.Z" nhánh.
      4. Gửi vấn đề
        • Sau khi bạn điền tất cả thông tin chi tiết và đặt miestone, gửi vấn đề.
    • Bot chọn lọc sẽ xử lý yêu cầu và thông báo cho bạn nếu(các) cam kết đủ điều kiện để chọn anh đào. Nếu các thay đổi có thể được chọn, nghĩa là không có xung đột hợp nhất trong khi chọn cam kết, sau đó bot này sẽ tạo một yêu cầu kéo mới. Khi kéo sẽ được một thành viên của nhóm Bazel phê duyệt, các thay đổi được chọn và hợp nhất với nhánh phát hành. Để xem ví dụ trực quan về một yêu cầu lựa chọn anh đào đã hoàn tất, nói đến nội dung này ví dụ của Google.

  5. Xác định các trình chặn phát hành và khắc phục các vấn đề phát hiện được trên nhánh phát hành.

    • Nhánh phát hành được kiểm thử với cùng một bộ kiểm thử trong postsubmitquy trình kiểm thử hạ nguồn trên Bazel CI. Nhóm Bazel theo dõi kết quả thử nghiệm của bản phát hành nhánh và khắc phục mọi sự hồi quy phát hiện được.
  6. Tạo bản đề xuất phát hành mới từ nhánh phát hành khi tất cả đã biết trình chặn phát hành được giải quyết.

    • Bản phát hành dùng thử sẽ được công bố vào thảo luận về ứng dụng tự nhiên, nhóm Bazel theo dõi các báo cáo lỗi trong cộng đồng cho ứng viên.
    • Nếu phát hiện thấy trình chặn phát hành mới, hãy quay lại bước cuối cùng và tạo một bản phát hành dùng thử mới sau khi giải quyết xong tất cả vấn đề.
    • Không cho phép thêm tính năng mới vào nhánh phát hành sau tạo bản phát hành đầu tiên; lựa chọn anh đào được giới hạn ở chỉ có bản sửa lỗi. Nếu cần lựa chọn anh đào, người yêu cầu phải trả lời những câu hỏi sau: Tại sao thay đổi này lại quan trọng và lợi ích của chúng mà nó mang lại không? Khả năng thay đổi này dẫn đến sự hồi quy?
  7. Chuyển bản phát hành dùng thử dưới dạng bản phát hành chính thức nếu không có bản phát hành nào khác có trình chặn

    • Đối với các bản phát hành của bản vá, hãy ra mắt bản phát hành ít nhất 2 ngày làm việc sau bản phát hành dùng thử cuối cùng đã hết.
    • Đối với các bản phát hành lớn và nhỏ, hãy ra mắt bản phát hành sau 2 ngày làm việc bản phát hành dùng thử gần nhất đã hết, nhưng không sớm hơn một tuần sau bản phát hành đầu tiên đã ra mắt.
    • Bản phát hành chỉ được đẩy vào ngày mà ngày tiếp theo là giờ làm việc ngày.
    • Bản phát hành sẽ được công bố vào thảo luận về ứng dụng tự nhiên, nhóm Bazel sẽ giám sát và xử lý các báo cáo lỗi của cộng đồng về bản phát hành.

Báo cáo số lần hồi quy

Nếu người dùng nhận thấy sự hồi quy trong một bản phát hành Bazel mới, hãy phát hành bản dùng thử hoặc thậm chí Bazel tại HEAD, vui lòng báo cáo lỗi về GitHub. Bạn có thể sử dụng Bazelisk sẽ chia đôi thủ phạm và đưa thông tin này vào lỗi báo cáo.

Ví dụ: nếu bản dựng của bạn thành công với Bazel 6.1.0 nhưng không thành công với phiên bản thứ hai phát hành dùng thử của 6.2.0, bạn có thể chia đôi qua

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

Bạn có thể đặt biến môi trường BAZELISK_SHUTDOWN hoặc BAZELISK_CLEAN để chạy các lệnh bazel tương ứng để đặt lại trạng thái bản dựng nếu cần tái hiện sự cố. Để biết thêm thông tin, hãy xem tài liệu về Bazelisk tính năng chia đôi.

Hãy nhớ nâng cấp Bazelisk lên phiên bản mới nhất để sử dụng tính năng chia đôi của chúng tôi.

Khả năng tương thích với quy tắc

Nếu bạn là tác giả quy tắc và muốn duy trì khả năng tương thích với các Phiên bản Bazel, vui lòng xem Quy tắc Khả năng tương thích.