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

Báo cáo vấn đề Xem nguồn Nightly .

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 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 phiên bản lớn 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

  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 sự thay đổi về hành vi và nhằm cung cấp công thức di chuyển.
  3. Bạn nên chuyển các cờ không tương thích sang bản phát hành LTS mới nhất mà không cần bật cờ này theo mặc định.
  4. 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.
  5. Không bao giờ chạy các 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à tính năng ổn định và được hỗ trợ trong Bazel.

Nội dung này bao gồm:

  • Ngôn ngữ và API của Starlark
  • Quy tắc đi kèm với Bazel
  • Các API Bazel, chẳng hạn như API Thực thi từ xa hoặc Giao thức sự kiện Xây dựng
  • Cờ và ngữ nghĩa của cờ

Công thức di chuyển và thay đổi không tương thích

Đối với mọi thay đổi không tương thích trong bản phát hành mới, nhóm Bazel hướng đến việc cung cấp công thức di chuyển giúp bạn cập nhật mã của mình (tệp BUILD.bzl, cũng như mọi hoạt động sử dụng Bazel trong tập lệnh, cách sử dụng Bazel API, v.v.).

Các thay đổi không tương thích phải được liên kết với một cờ --incompatible_* và có một vấn đề tương ứng trên GitHub.

Bạn nên chuyển cờ hiệu không tương thích và các thay đổi liên quan sang bản phát hành LTS mới nhất mà không cần bật cờ này theo mặc định. Điều này cho phép người dùng di chuyển những thay đổi không tương thích trước khi có bản phát hành LTS tiếp theo.

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"thay đổi không tương thích".

Đối với mỗi thay đổi không tương thích, vấn đề nêu rõ 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 ở HEAD (do đó, cũng với bản phát hành Bazel tiếp theo), bạn nên đánh dấu thay đổi đó 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 ở HEAD.