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 中,純 Python 和 C++ 擴充功能中已棄用message.UnknownFields()
。我們計劃在 v26 中移除它。改為使用 unknown_fields.py
中新的UnknownFieldSet(message)
支援。
所有這些變更的更多詳細資訊將會在對應的版本資訊中提供。