2023 年 12 月 27 日宣布的变更

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

Ruby 重大变更

以下变更是为 26.x 版本系列计划的

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

PHP 重大变更

以下变更是为 26.x 版本系列计划的

  • 在 setter 中验证字符串字段的 UTF-8。
  • 移除通用服务。 (提交 40ad3fa)

Python 重大变更

以下变更是为 26.x 版本系列计划的

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

upb 重大变更

以下变更是为 26.x 版本系列计划的