2022年8月3日に発表された変更

2022年8月3日に Protocol Buffers に対して発表された変更。

このトピックでは、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" を使用するように変更する予定です。