2024 年 10 月 1 日宣布的變更
2024 年 10 月 1 日針對 Protocol Buffers 宣布的變更。
Bazel 與 Proto 規則
即將變更 Bazel 處理 protobuf 建置的方式。這些變更在第一階段需要注意,專案擁有者在第二階段之前需要採取行動。
第一階段
隨著 Bazel 8 的發布,proto 規則 (proto_library
、cc_proto_library
、java_proto_library
、java_lite_proto_library
和 py_proto_library
) 將從 Bazel 專案中移除。這些規則將在 v29 中新增至 Protocol Buffers 專案。Bazel 將更新為自動使用 protobuf 專案的規則,因此此變更最初對專案擁有者來說不會有任何影響。
在 Bazel 8 發布之後,且在 Bazel 9 發布之前,使用者將需要從 Protocol Buffers 專案儲存庫明確 load
規則。自動使用規則僅為暫時性,以支援遷移。
使用者應該將以下 load()
宣告新增至任何使用這些 proto 規則的 BUILD
或 .bzl
檔案。請注意,這些需要 Protobuf v29.0 或更高版本。
load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
load("@protobuf//bazel:java_proto_library.bzl", "java_proto_library")
load("@protobuf//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
load("@protobuf//bazel:py_proto_library.bzl", "py_proto_library")
第二階段
當 Bazel 9 發布時,protobuf 程式庫規則的自動載入將會移除。屆時,您將需要在 Bazel 建置檔案中加入 load
宣告。
最終目標
一旦規則進入 protobuf 儲存庫,我們打算處理常見的使用者要求,例如在可能的情況下使用 proto 編譯器的預先建置版本。