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 版本線