2025 年 1 月 23 日宣布的变更

于 2025 年 1 月 23 日宣布的 Protocol Buffers 变更。

废弃 Java gencode

我们正在为 25.x 分支打一个补丁,该补丁将废弃在 3.21.7 版本之前创建的 Java gencode。然后,我们会将从 3.21.7 到 3.25.5 的所有 Java protobuf 版本标记为易受 footmitten CVE 攻击。

此变更打上补丁后,除非您设置了系统属性 “-Dcom.google.protobuf.use_unsafe_pre22_gencode”,否则 protobuf 将从 makeExtensionsImmutable 方法中抛出 UnsupportedOperationException。如果您无法立即更新代码,使用此系统属性可以为您争取一些时间,但这应被视为短期解决方案。

停用 MSVC + Bazel

更新: 此计划已取消。您可以在 2025 年 7 月 16 日的公告中了解更多信息。

我们将在 v34 版本中停止支持同时使用 Bazel 和 MSVC。从 v30 版本开始,我们将通过报错来废弃这种组合,除非您指定退出标志 --define=protobuf_allow_msvc=true 来忽略该错误。

MSVC 的路径长度限制与 Bazel 的沙箱机制相结合,使得这种组合越来越难以支持。为避免将 protobuf 安装到长路径中的用户随机出现问题,我们将完全禁止从 Bazel 中使用 MSVC。我们将继续支持 MSVC 与 CMake 结合使用,并开始支持 clang-cl 与 Bazel 结合使用。有关任何反馈或讨论,请参阅 https://github.com/protocolbuffers/protobuf/issues/20085