2023 年 12 月 27 日宣布的变更

2023 年 12 月 27 日为 Protocol Buffers 宣布的变更。

Ruby 破坏性变更

以下变更为 26.x 版本系列规划

  • 修复 RepeatedField#each_index 以使其具有正确的语义。( #11767)
  • 移除 Ruby DSL 和相关的兼容性代码,这将完成 4 月份宣布的迁移
  • Message#to_h 修复
    • 移除未设置的 oneof 字段。( #6167)
    • 移除未设置的子消息字段
  • encode_json/decode_json 使用消息的池。
  • 移除已弃用的语法访问器 FileDescriptor.syntax,并用语义检查取代它
    • 使用 FieldDescriptor.has_presence 来测试字段是否存在。
    • 使用 FieldDescriptor.is_packed 来测试重复字段是否打包。
    • 使用 FieldDescriptor.requires_utf8_validation 来测试字符串字段是否需要 UTF-8 验证。
    • 使用 EnumDescriptor.is_closed 来测试枚举是否关闭。

PHP 破坏性变更

以下变更为 26.x 版本系列规划

  • 在 setter 中验证字符串字段的 UTF-8。
  • 移除泛型服务。( commit 40ad3fa)

Python 破坏性变更

以下变更为 26.x 版本系列规划

  • str(msg) 转义字符串字段中的任何无效 UTF-8。
  • text_format.MessageToString() 默认输出原始 UTF-8,同时转义任何无效的 UTF-8 序列。
  • 修复时间戳边界。( commit 1250d5f)

upb 破坏性变更

以下变更为 26.x 版本系列规划

  • 修复启用 IgnoreUnknownEnumString 时 JSON 解析中的 不一致性