2023 年 12 月 13 日宣布的變更
C++ 破壞性變更
在 v26 中,我們計劃按照我們的破壞性變更政策和版本支援政策,對 C++ 進行主要版本升級。
以下章節概述了我們計劃包含在 Protocol Buffers 26.0 版本中的一組破壞性變更。請注意,計劃可能會而且確實會變更。這些是需要注意的潛在破壞性變更,但它們可能不會在這個特定版本中發生,或者它們可能根本不會發生。
移除已棄用的重複欄位 clear API
以下已棄用的方法已移除
RepeatedPtrField::ReleaseCleared()
RepeatedPtrField::ClearedCount()
RepeatedPtrField::AddCleared()
移除 C++ 舊版語法描述器 API
隨著版本的發布,語法不再支援業務邏輯。相反地,使用 descriptor.h
中定義的各種特性輔助程式來查詢更具針對性的行為,例如 has_presence
,以在 C++ 中查詢特性。
移除已棄用的語法存取器
我們計劃在 v26 中移除已棄用的語法存取器 FileDescriptor::Syntax
。我們建議改用 FileDescriptor::edition
中的 getter。
移除已棄用的 SupportsUnknownEnumValues 方法
SupportsUnknownEnumValues
方法已於2023 年 3 月棄用。我們計劃在 v26 中移除它。
移除 std::string 錯誤收集器覆寫
我們計劃移除錯誤收集器中已棄用的 std::string
方法。
Python 破壞性變更
在 v26 中,我們計劃按照我們的破壞性變更政策和版本支援政策,對 Python 進行主要版本升級。
時間戳記會檢查有效性
在 v26 中,系統將檢查 Timestamp
值是否有效。秒數必須在 [-62135596800, 253402300799] 範圍內,奈秒數必須在 [0, 999999999] 範圍內。超出這些範圍的值將引發例外。
移除已棄用的語法存取器
我們計劃在 v26 中移除已棄用的語法存取器 FileDescriptor.syntax
。我們計劃在其位置新增 FileDescriptor.edition
。
UnknownFields 支援移除
在 v25 中,message.UnknownFields()
已在純 Python 和 C++ 擴充功能中棄用。我們計劃在 v26 中移除它。使用 unknown_fields.py
中新的 UnknownFieldSet(message)
支援作為替代方案。
有關所有這些變更的更多詳細資訊將在相應的發行說明中提供。