2022年8月3日に発表された変更点
このトピックは、一般的なプラットフォームサポートの変更と、22.xリリースラインで検討されているC++固有の変更の2つの領域をカバーしています。
プラットフォームサポートの変更
サポートするプラットフォームに関するガイダンスを、ドキュメントのこのセクションに追加しました。このセクションは現在C++とPHPをカバーしていますが、将来的には他のプラットフォームに関する情報も追加される可能性があります。
公式 C++ サポートマトリックス
この発表で前述した、Googleの公式C++基盤サポートポリシーを使用するポリシーに伴い、当社のC++コンパイラおよびツールチェーンのサポートマトリックスが変更されます。
C++ の変更
新しいメジャーバージョンと破壊的変更ポリシーの発表を受けて、C++のメジャーバージョンアップを計画しています。22.xリリースラインからリリースするアセットにいくつかの変更を加える予定です。
以下のセクションでは、プロトコルバッファの22.0リリースに含める予定の破壊的変更のセットを概説します。計画は変更される可能性があることに注意してください。これらは注意すべき潜在的な破壊的変更ですが、この特定のリリースで発生しない、または全く発生しない可能性があります。
C++20 のサポート追加
C++言語への新しいキーワードの追加により、C++20のサポートを追加することは、たとえ現在C++20を使用していなくても、ユーザーにとって破壊的な変更となります。
特定のコンパイラモードでのみ条件付きで名前を変更する緩和策は、複数の言語標準をサポートするプロジェクトを破壊します。
C++11 のサポート終了
C++サポートポリシーに従い、C++11のサポートを終了する予定です。これは破壊的変更です。
Autotools のサポート終了
ビルドシステムサポートポリシーに従い、autotoolsのサポートを終了する予定です。これは破壊的変更です。autotoolsのサポートが終了した後、protobufはCMakeとBazelのみをサポートします。
PHP <7.4 のサポート終了
PHPサポートポリシーに従い、EOL版のPHPのサポートを終了する予定です。これらのバージョンはすでに広範なエコシステムでEOLであるため、これは破壊的変更とは見なされません。
Abseil の依存関係追加
protobufにおけるGoogleとOSSの違いを減らし、プロジェクトを簡素化するために、Abseilへの正式な依存関係を確立する予定です。将来的には、パブリックAPIでAbseil型を使用し始める予定ですが、依存関係を追加するだけでも破壊的な変更となります。
言語固有のソースディストリビューションの終了
autotoolsへの依存を減らし、リリースするアーティファクトの数を最小限に抑えるため、GitHubリリースページでの言語固有のソースディストリビューションの公開を停止する予定です。代わりに、ユーザーにはGitHubによってリリースページで自動生成されるソースコードディストリビューションをダウンロードすることをお勧めします。
Maven リリース候補アーティファクト名の慣用的な命名への変更
22.0では、Mavenアーティファクトのリリース候補プレフィックスとして、「rc-」ではなく「RC」を使用するように名称を変更する予定です。