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 字段是否为 packed。FieldDescriptor.requires_utf8_validation
用于测试一个字符串字段是否需要 UTF-8 验证。EnumDescriptor.is_closed
用于测试一个枚举是否为 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 解析中的不一致性。