2022年8月3日に発表された変更
このトピックでは、2つの領域について説明します。一般的なプラットフォームサポートの変更と、22.x リリースラインで検討されている C++ 固有の変更です。
プラットフォームサポートの変更
ドキュメントのこちらのセクションに、サポートするプラットフォームに関するガイダンスを追加しました。現在、このセクションでは 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 サポートポリシーに従い、EOL バージョンの PHP のサポートを削除する予定です。これらのバージョンはより広範なエコシステムで既に EOL であるため、これは破壊的変更とは見なされません。
Abseil の依存関係を追加
protobuf と OSS の間の Google との違いを減らし、独自のプロジェクトを簡素化するために、Abseil に正式な依存関係を持たせることを計画しています。将来的には、パブリック API で Abseil 型の使用を開始する予定ですが、単に依存関係を追加するだけでも破壊的変更となります。
言語固有のソース配布の廃止
autotools への依存を減らし、リリースするアーティファクトの数を最小限に抑えるために、GitHub リリースページでの言語固有のソース配布の公開を停止する予定です。代わりに、ソースコード配布を GitHub がリリースページで自動生成したものをダウンロードすることをお勧めします。
Maven リリース候補アーティファクトの名前をより慣用的なものに変更
22.0 では、Maven アーティファクトの名前を、リリース候補プレフィックスとして "rc-" の代わりに "RC" を使用するように変更する予定です。