2024年10月1日発表の変更点

2024年10月1日に発表されたProtocol Buffersの変更点。

Bazel と Proto Rules

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

ステージ 1

Bazel 8のリリースに伴い、proto rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, および py_proto_library) はBazelプロジェクトから削除されます。これらはv29で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コンパイラにプレビルドを使用するなど、一般的なユーザーからの要望に対処する予定です。