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