Khả năng tương thích ngược

Báo cáo vấn đề Xem nguồn Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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 thông báo về các 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 một phiên bản chính LTS hoàn toàn tương thích ngược. Các thay đổi giữa các bản phát hành LTS chính có thể chứa các thay đổi không tương thích, đòi hỏi một số nỗ lực di chuyển. Để biết thêm thông tin về cách hoạt động của tần suất phát hành Bazel, hãy xem bài viết Công bố các bản phát hành Hỗ trợ dài hạn (LTS) của Bazel.

Tóm tắt

  1. Bạn nên sử dụng cờ --incompatible_* cho các thay đổi có thể gây lỗi.
  2. Đối với mỗi cờ --incompatible_*, một vấn đề trên GitHub sẽ giải thích về thay đổi về hành vi và hướng đến việc cung cấp công thức di chuyển.
  3. Các API và hành vi được bảo vệ bằng cờ --experimental_* có thể thay đổi bất cứ lúc nào.
  4. Không bao giờ chạy bản dựng chính thức bằng cờ --experimental_* hoặc --incompatible_*.

Cách tuân thủ chính sách này

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ữ Starlark và API
  • Quy tắc đi kèm với Bazel
  • API Bazel, chẳng hạn 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 và công thức di chuyển không tương thích

Đố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 hướng đến việc cung cấp một công thức di chuyển giúp bạn cập nhật mã (tệp BUILD.bzl, cũng như mọi hoạt động sử dụng Bazel trong tập lệnh, 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à một vấn đề tương ứng trên GitHub.

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 thẻ"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 thông tin 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 với Bazel tại HEAD (do đó, cũng với bản phát hành lăn Bazel tiếp theo), thay đổi đó phải được đá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.