Änderungen angekündigt am 13. Dezember 2023
C++ Breaking Changes
In v26 planen wir eine Hauptversionserhöhung für C++ gemäß unserer Richtlinie für Breaking Changes und Richtlinie zur Versionierungsunterstützung.
Die folgenden Abschnitte beschreiben die Liste der Breaking Changes, die wir in der Version 26.0 von Protocol Buffers planen. Beachten Sie, dass Pläne sich ändern können und werden. Dies sind potenzielle Breaking Changes, über die Sie sich bewusst sein sollten, aber sie könnten in dieser bestimmten Version nicht stattfinden oder gar nicht.
Entfernen von veralteten clear APIs für wiederholte Felder
Die folgenden veralteten Methoden werden entfernt
RepeatedPtrField::ReleaseCleared()RepeatedPtrField::ClearedCount()RepeatedPtrField::AddCleared()
Entfernen von C++ Legacy Syntax Descriptor APIs
Mit der Veröffentlichung von Editionen wird die Syntax nicht mehr für Geschäftslogik unterstützt. Verwenden Sie stattdessen die verschiedenen Helferfunktionen in descriptor.h, um gezieltere Verhaltensweisen abzufragen, wie z. B. has_presence, um Funktionen in C++ abzufragen.
Entfernen von veralteten Syntax Accessoren
Wir planen, den veralteten Syntax-Accessor FileDescriptor::Syntax in v26 zu entfernen. Wir empfehlen stattdessen die Getter von FileDescriptor::edition zu verwenden.
Entfernen der veralteten Methode SupportsUnknownEnumValues
Die Methode SupportsUnknownEnumValues wurde im März 2023 als veraltet markiert. Wir planen, sie in v26 zu entfernen.
Entfernen von std::string Error Collector Overrides
Wir planen, die veralteten std::string-Methoden in Fehlerkollektoren zu entfernen.
Python Breaking Changes
In v26 planen wir eine Hauptversionserhöhung für Python gemäß unserer Richtlinie für Breaking Changes und Richtlinie zur Versionierungsunterstützung.
Timestamps werden auf Gültigkeit geprüft
In v26 wird das System prüfen, ob Timestamp-Werte gültig sind. Sekunden müssen im Bereich [-62135596800, 253402300799] und Nanos im Bereich [0, 999999999] liegen. Werte außerhalb dieser Bereiche lösen eine Ausnahme aus.
Entfernen von veralteten Syntax Accessoren
Wir planen, den veralteten Syntax-Accessor FileDescriptor.syntax in v26 zu entfernen. Wir planen stattdessen FileDescriptor.edition hinzuzufügen.
Entfernen der Unterstützung für UnknownFields
In v25 wurde message.UnknownFields() (in pure Python und C++-Erweiterungen) als veraltet markiert. Wir planen, sie in v26 zu entfernen. Verwenden Sie stattdessen die neue Unterstützung für UnknownFieldSet(message) in unknown_fields.py als Ersatz.
Weitere Details zu all diesen Änderungen finden Sie in den entsprechenden Versionshinweisen.