29.x 版本新闻公告
Protocol Buffers 29.x 版本的变更公告。
以下公告是针对 2024 年 11 月 27 日发布的 29.x 版本的。有关按时间顺序呈现的信息,请参阅 新闻。
Bazel 和 Proto 规则
Bazel 在 protobuf 构建方面将发生一些变化。这些变化在第一阶段需要大家了解,并在第二阶段之前需要项目所有者采取行动。
第一阶段
随着 Bazel 8 的发布,proto 规则(proto_library、cc_proto_library、java_proto_library、java_lite_proto_library 和 py_proto_library)将从 Bazel 项目中移除。它们将被添加到 Protocol Buffers 项目的 v29 中。Bazel 将更新以自动使用 Protocol Buffers 项目中的规则,因此对项目所有者来说,最初的变更不会产生影响。
在 Bazel 8 发布之后、Bazel 9 发布之前,用户需要显式地从 Protocol Buffers 项目仓库中 `load` 规则。规则的自动使用仅是暂时的,以支持迁移。
用户应该在任何使用这些 proto 规则的 `BUILD` 或 `.bzl` 文件中添加以下 `load()` 语句。请注意,这些需要 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 编译器的预构建版本。