Trang này cung cấp thông tin về cách xử lý khả năng tương thích ngược, bao gồm cả việc di chuyển từ bản phát hành này sang bản phát hành khác và cách truyền đạt những thay đổi không tương thích.
Bazel đang phát triển. Các phiên bản nhỏ được phát hành trong phiên bản chính LTS hoàn toàn tương thích ngược. Các bản phát hành LTS chính mới có thể chứa những thay đổi không tương thích và đòi hỏi bạn phải nỗ lực di chuyển. Để biết thêm thông tin về mô hình phát hành của Bazel, vui lòng xem trang Mô hình phát hành.
Tóm tắt
- Bạn nên sử dụng cờ
--incompatible_*
cho các thay đổi gây lỗi. - Đối với mỗi cờ
--incompatible_*
, một vấn đề trên GitHub sẽ giải thích sự thay đổi về hành vi và nhằm mục đích cung cấp một công thức di chuyển. - Bạn nên chuyển ngược các cờ không tương thích về phiên bản LTS mới nhất mà không bật cờ theo mặc định.
- API và hành vi được bảo vệ bằng cờ
--experimental_*
có thể thay đổi bất cứ lúc nào. - Không bao giờ chạy bản dựng phát hành bằng cờ
--experimental_*
hoặc--incompatible_*
.
Cách tuân thủ chính sách này
- Đối với người dùng Bazel – cách cập nhật Bazel
- Đối với cộng tác viên – các phương pháp hay nhất cho những thay đổi không tương thích
- Đối với người quản lý phát hành – cách cập nhật nhãn vấn đề và bản phát hành
Chức năng ổn định là gì?
Nhìn chung, các API hoặc hành vi không có cờ --experimental_...
được coi là các tính năng ổn định, được hỗ trợ trong Bazel.
Nội dung như vậy bao gồm:
- Ngôn ngữ và API Starlark
- Các quy tắc đi kèm với Bazel
- Các API Bazel như API Thực thi từ xa hoặc Giao thức sự kiện bản dựng
- Cờ và ngữ nghĩa của cờ
Các thay đổi không tương thích và công thức di chuyển
Đối với mọi thay đổi không tương thích trong một bản phát hành mới, nhóm Bazel luôn cố gắng cung cấp một công thức di chuyển giúp bạn cập nhật mã (tệp BUILD
và .bzl
, cũng như mọi cách sử dụng Bazel trong tập lệnh, cách sử dụng API Bazel, v.v.).
Các thay đổi không tương thích phải có cờ --incompatible_*
được liên kết và vấn đề tương ứng trên GitHub.
Bạn nên chuyển ngược cờ không tương thích và các thay đổi có liên quan về phiên bản LTS mới nhất mà không bật cờ theo mặc định. Điều này cho phép người dùng di chuyển cho các thay đổi không tương thích trước khi bản phát hành LTS tiếp theo có sẵn.
Thông báo về các thay đổi không tương thích
Nguồn thông tin chính về các thay đổi không tương thích là các vấn đề trên GitHub được đánh dấu bằng nhãn "incompatible-change" (thay đổi không tương thích).
Đối với mỗi thay đổi không tương thích, vấn đề sẽ chỉ định những nội dung sau:
- Tên của cờ kiểm soát thay đổi không tương thích
- Nội dung mô tả về chức năng đã thay đổi
- Công thức di chuyển
Khi một thay đổi không tương thích đã sẵn sàng để di chuyển bằng Bazel tại HEAD (do đó, cũng có bản phát hành tiếp theo của Bazel), bạn nên đánh dấu bằng nhãn migration-ready
. Vấn đề thay đổi không tương thích sẽ được đóng khi cờ không tương thích được lật tại HEAD.