Änderungen angekündigt am 5. Dezember 2023
Java Breaking Changes
In v26 planen wir ein großes Versionsupdate für Java gemäß unserer Richtlinie für Breaking Changes und unserer Richtlinie zur Versionsunterstü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.
Poison Pilling Gencode / Runtime Mismatches
Gemäß unseren Cross-Version Runtime Guarantees unterstützt Protobuf nicht das Mischen von generiertem Code und Runtimes über Hauptversionsgrenzen hinweg oder das Mischen von generiertem Code einer neueren Version von protoc mit älteren Runtimes innerhalb einer einzelnen Hauptlaufzeitversion. Wir planen, "Poison Pills" einzuführen, um diese nicht erlaubten Diskrepanzen zu erkennen und durchzusetzen.
Dies wird nicht als Breaking Change betrachtet, da dies lediglich die Durchsetzung bestehender Richtlinien hinzufügt, erfordert aber möglicherweise, dass Benutzer ihren generierten Code aktualisieren.
Breaking Compatibility with Old Generated Code
v26.x wird die Kompatibilität mit generiertem Code älterer Hauptversionen brechen. Benutzer sollten alten generierten Code erneut generieren lassen, um aus derselben Version zu stammen.
Zum Beispiel wird GeneratedMessageV3, das ursprünglich für die Abwärtskompatibilität mit generiertem Code von v2.x.x gegen v3.x.x Runtime eingeführt wurde, in GeneratedMessage umbenannt. Runtimes werden aktualisiert, um Editions zu unterstützen, die nicht mit altem generiertem Code kompatibel sind.
Dies steht im Einklang mit unseren bestehenden Cross-Version Runtime Guarantees und ist ein Breaking Change.
Removing Deprecated Methods/Variables
v26.x wird den Zugriff auf veraltete Methoden und Variablen entfernen. Diese wurden in der Regel bereits in einer früheren Version als @Deprecated markiert.
Dies wird den Zugriff auf die folgende, nicht erschöpfende Liste entfernen
Descriptor-Syntax-APIs, die durch entsprechende Feature-Accessoren ersetzt werden sollten (wie z. B.
FieldDescriptor.hasPresence(),EnumDescriptor.isClosed())TextFormat-Druckmethoden, die durch entsprechende
TextFormat.printer()-Methoden ersetzt werden sollten.PARSER-Variable, die durch die
parser()-Methode ersetzt werden sollte.Laufzeitmethoden für alte v2.x.x Gencode-Kompatibilität. Dies wird nicht mehr unterstützt, gemäß unseren Cross Version Runtime Guarantees.
Weitere Details finden Sie in den entsprechenden Release Notes.