バージョン 29.x のニュース発表

Protocol Buffers バージョン 29.x で発表された変更。

以下の発表はバージョン 29.x に特化したものです。時系列で提示された情報については、ニュースを参照してください。

Bazel と Proto ルール

Protobuf ビルドにおける Bazel の動作方法について、今後の変更があります。これらの変更は、最初のステージで認識し、2番目のステージの前にプロジェクトオーナーによる対応が必要です。

ステージ1

Bazel 8 のリリースに伴い、proto ルール (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, および py_proto_library) は Bazel プロジェクトから削除されます。これらはバージョン 29 で Protocol Buffers プロジェクトに追加されます。Bazel は、protobuf プロジェクトのルールを自動的に使用するように更新されるため、この変更は当初、プロジェクトオーナーにとっては影響ありません。

Bazel 8 のリリース後から Bazel 9 のリリースまでの間に、ユーザーは Protocol Buffers プロジェクトのリポジトリから明示的にルールを load する必要があります。ルールの自動使用は、移行をサポートするための暫定的なものです。

これらの proto ルールを使用するすべての BUILD または .bzl ファイルに、以下の load() ステートメントを追加する必要があります。なお、これには Protobuf v29.0 以降が必要です。

load("@protobuf//bazel:proto_library.bzl", "proto_library")

load("@protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
load("@protobuf//bazel:java_proto_library.bzl", "java_proto_library")
load("@protobuf//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
load("@protobuf//bazel:py_proto_library.bzl", "py_proto_library")

ステージ2

Bazel 9 がリリースされると、protobuf ライブラリのルールの自動ロードは削除されます。その時点で、Bazel ビルドファイルに load ステートメントが必要になります。

最終目標

ルールが protobuf リポジトリに置かれると、proto コンパイラのプレビルドを可能な限り使用するなど、一般的なユーザーからの要望に対応する予定です。