Änderungen angekündigt am 1. Oktober 2024
Bazel und Proto-Regeln
Es gibt bevorstehende Änderungen an der Arbeitsweise von Bazel für Protobuf-Builds. Diese Änderungen erfordern Kenntnisnahme in der ersten Phase und Maßnahmen durch die Projektbesitzer vor der zweiten Phase.
Phase 1
Mit der Veröffentlichung von Bazel 8 werden die Proto-Regeln (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library und py_proto_library) aus dem Bazel-Projekt entfernt. Sie werden in v29 zum Protocol Buffers-Projekt hinzugefügt. Bazel wird so aktualisiert, dass es automatisch die Regeln aus dem Protobuf-Projekt verwendet, sodass die Änderung für die Projektbesitzer zunächst eine No-Op ist.
Nach der Veröffentlichung von Bazel 8 und vor der Veröffentlichung von Bazel 9 müssen die Benutzer die Regeln explizit aus dem Repository des Protocol Buffers-Projekts loaden. Die automatische Verwendung der Regeln ist nur vorübergehend, um die Migration zu unterstützen.
Benutzer sollten die folgenden load()-Anweisungen zu allen BUILD- oder .bzl-Dateien hinzufügen, die diese Proto-Regeln verwenden. Beachten Sie, dass hierfür Protobuf v29.0 oder höher erforderlich ist.
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")
Phase 2
Wenn Bazel 9 veröffentlicht wird, wird das automatische Laden der Regeln der Protobuf-Bibliothek entfernt. Zu diesem Zeitpunkt müssen Sie load-Anweisungen in Ihren Bazel-Build-Dateien haben.
Endziel
Sobald die Regeln im Protobuf-Repo sind, beabsichtigen wir, gängige Benutzeranfragen zu erfüllen, wie z. B. die Verwendung von Prebuilts für den Proto-Compiler, wo dies möglich ist.