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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Báo cáo vấn đề Xem nguồn

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 phiên bản lớn của LTS hoàn toàn tương thích ngược. Những thay đổi giữa các bản phát hành LTS lớn có thể chứa những thay đổi không tương thích, trong đó cần một số nỗ lực di chuyển. Để biết thêm thông tin về cách hoạt động của lịch phát hành Bazel, hãy xem bài viết Thông báo về 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_* để thay đổi có thể gây lỗi.
  2. Đối với mỗi cờ --incompatible_*, một vấn đề về GitHub giải thích sự thay đổi về hành vi và nhằm cung cấp một công thức di chuyển.
  3. Các API và hành vi được bảo vệ bởi một cờ --experimental_* có thể thay đổi bất cứ lúc nào.
  4. Không bao giờ chạy các bản dựng chính thức có 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:

  • API và ngôn ngữ 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 trên 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 bản phát hành mới, nhóm Bazel sẽ cung cấp 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 trường hợp sử dụng Bazel trong tập lệnh, việc sử dụng API Bazel, v.v.).

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

Thông báo về các thay đổi không tương thích

Nguồn thông tin chính về những thay đổi không tương thích là các vấn đề liên quan đến GitHub được gắn nhãn "incompatible-change".

Đối với mọi thay đổi không tương thích, vấn đề sẽ chỉ định những điều sau:

  • Tên cờ kiểm soát thay đổi không tương thích
  • 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 luân phiên tiếp theo của Bazel), thay đổi đó phải được đánh dấu bằng nhãn migration-ready. Vấn đề thay đổi không tương thích bị đóng khi cờ không tương thích được lật ở HEAD.