Änderungen angekündigt am 3. August 2022
Dieses Thema behandelt zwei Bereiche: allgemeine Änderungen bei der Plattformunterstützung und C++-spezifische Änderungen, die für die Release-Reihe 22.x in Betracht gezogen werden.
Änderungen bei der Plattformunterstützung
Wir haben Anleitungen zu den Plattformen, die wir unterstützen, in diesem Abschnitt der Dokumentation hinzugefügt. Der Abschnitt behandelt derzeit C++ und PHP, kann aber in Zukunft um Informationen zu anderen Plattformen erweitert werden.
Offizielle C++-Supportmatrix
Mit der zuvor in dieser Ankündigung erwähnten Richtlinie, die offizielle Grundlegende C++-Supportrichtlinie von Google zu verwenden, wird sich unsere C++-Compiler- und Toolchain-Supportmatrix ändern.
C++-Änderungen
Nach der Ankündigung unserer neuen Hauptversion und der Richtlinie für Breaking Changes planen wir eine Hauptversionsänderung für C++. Wir planen, einige Änderungen an den Assets vorzunehmen, die wir ab unserer Release-Reihe 22.x veröffentlichen.
Die folgenden Abschnitte beschreiben die Reihe von Breaking Changes, die wir in der Version 22.0 von Protocol Buffers aufnehmen wollen. Beachten Sie, dass sich Pläne ändern können und auch werden. Dies sind potenzielle Breaking Changes, auf die Sie achten sollten, aber sie könnten in dieser speziellen Version nicht auftreten oder gar nicht auftreten.
Hinzufügen von C++20-Unterstützung
Aufgrund der Hinzufügung neuer Schlüsselwörter zur C++-Sprache ist das Hinzufügen von Unterstützung für C++20 eine Breaking Change für Benutzer, auch wenn sie C++20 derzeit nicht verwenden.
Abhilfemaßnahmen, um Namen nur in bestimmten Compiler-Modi bedingt zu ändern, würden Projekte brechen, die mehrere Sprachstandards unterstützen.
Abkündigung der C++11-Unterstützung
Gemäß unserer C++-Supportrichtlinie planen wir, die C++11-Unterstützung einzustellen. Dies ist eine Breaking Change.
Abkündigung der Autotools-Unterstützung
Gemäß unserer Build-System-Supportrichtlinie planen wir, die Autotools-Unterstützung einzustellen. Dies ist eine Breaking Change. Nach der Einstellung der Autotools-Unterstützung werden Protobuf nur CMake und Bazel unterstützen.
Abkündigung der Unterstützung für PHP <7.4
Gemäß unserer PHP-Supportrichtlinie planen wir, die Unterstützung für EOL-Versionen von PHP einzustellen. Dies wird nicht als Breaking Change betrachtet, da diese Versionen im breiteren Ökosystem bereits EOL sind.
Hinzufügen einer Ab dependency auf Abseil
Um die Unterschiede zwischen Google und OSS bei Protobuf zu reduzieren und unser eigenes Projekt zu vereinfachen, planen wir, eine formale Abhängigkeit von Abseil einzugehen. Mit der Zeit planen wir, Abseil-Typen in unseren öffentlichen APIs zu verwenden, aber allein das Hinzufügen der Abhängigkeit ist eine Breaking Change.
Abkündigung sprachspezifischer Quellcode-Distributionen
Um die Abhängigkeit von Autotools zu reduzieren und die Anzahl der veröffentlichten Artefakte zu minimieren, planen wir, sprachspezifische Quellcode-Distributionen nicht mehr auf unserer GitHub Release-Seite zu veröffentlichen. Stattdessen empfehlen wir Benutzern, die von GitHub auf der Release-Seite automatisch generierte Quellcode-Distribution herunterzuladen.
Änderung der Maven Release Candidate Artefakt-Namen, um idiomatischer zu werden
In 22.0 planen wir, Maven-Artefakte umzubenennen, um "RC" anstelle von "rc-" als Release-Candidate-Präfix zu verwenden.