2023 年 12 月 27 日宣布的變更
Protocol Buffers 於 2023 年 12 月 27 日宣布的變更。
Ruby 破壞性變更
以下變更計劃用於 26.x 版本線
- 修正
RepeatedField#each_index
以具有正確的語意。(<#11767>) - 移除 Ruby DSL 和相關的相容性程式碼,這將完成四月宣布的遷移。
Message#to_h
修正- 移除未設定的 oneof 欄位。(<#6167>)
- 移除未設定的子訊息欄位
- 將訊息的 pool 用於
encode_json
/decode_json
。 - 移除已棄用的語法存取器
FileDescriptor.syntax
,並在其位置新增語意檢查FieldDescriptor.has_presence
用於測試欄位是否具有存在性。FieldDescriptor.is_packed
用於測試重複欄位是否為 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 解析中的不一致性。