Skip to content

6.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Apr 16:13
· 30 commits to main since this release
d205d37

NEW FEATURES

When used with Bazel 7, Protobuf Toolchainization is now available. This allows you to choose where the protobuf compiler (protoc) comes from, as well as configure a toolchain for each language you generate proto stubs for.

This de-couples rules_proto from the https://github.com/protocolbuffers/protobuf repository; rules_proto no longer depends on com_google_protobuf. The Bazel rules in that repository are now maintained by the protobuf team for Google use cases, and may diverge from rules_proto over time.

rules_proto does not include the toolchain implementation. See https://registry.bazel.build/modules/toolchains_protoc for an example module that registers the prebuilt binary from https://github.com/protocolbuffers/protobuf/releases.

The tracking issue for this feature is #179

BREAKING CHANGES

Upgrading from rules_proto 5.x requires some changes:

  • The load site for rules_proto_toolchains has changed. See the new WORKSPACE snippet below.
  • As mentioned above, rules_proto no longer depends on the protobuf repo (commonly as com_google_protobuf). As a result, the rules_proto_dependencies macro no longer fetches one. For WORKSPACE users, this may affect what version of protobuf you end up with. We recommend explicitly fetching com_google_protobuf early in the WORKSPACE file, as the first declaration wins.

Install

Using bzlmod with Bazel 6 or later:

  1. [Bazel 6] Add common --enable_bzlmod to .bazelrc.

  2. Add to your MODULE.bazel file:

bazel_dep(name = "rules_proto", version = "6.0.0")

Using WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_proto",
    sha256 = "303e86e722a520f6f326a50b41cfc16b98fe6d1955ce46642a5b7a67c11c0f5d",
    strip_prefix = "rules_proto-6.0.0",
    url = "https://github.com/bazelbuild/rules_proto/releases/download/6.0.0/rules_proto-6.0.0.tar.gz",
)

load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies")
rules_proto_dependencies()

load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains")
rules_proto_toolchains()

What's Changed

New Contributors

Full Changelog: 4.0.0...6.0.0