Using Bzlmod with Bazel 6 or later
- (Bazel 6 only) Enable with
common --enable_bzlmod
in.bazelrc
. - Add to your
MODULE.bazel
file:
# NB: this must come BEFORE bazel_dep(name = "protobuf") because they register the from-source toolchain,
# and the first registration wins.
bazel_dep(name = "toolchains_protoc", version = "0.4.3")
# Optional: choose a version of protoc rather than the latest.
protoc = use_extension("@toolchains_protoc//protoc:extensions.bzl", "protoc")
protoc.toolchain(
# Pin to any version of protoc
version = "v26.0",
)
Using WORKSPACE
Paste this snippet into your WORKSPACE.bazel
file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "toolchains_protoc",
sha256 = "3019f9ed1273d547334da2004e634340c896d9e24dd6d899911e03b694fdc1f5",
strip_prefix = "toolchains_protoc-0.4.3",
url = "https://github.com/aspect-build/toolchains_protoc/releases/download/v0.4.3/toolchains_protoc-v0.4.3.tar.gz",
)
######################
# toolchains_protoc setup #
######################
# Fetches the toolchains_protoc dependencies.
# If you want to have a different version of some dependency,
# you should fetch it *before* calling this.
# Alternatively, you can skip calling this function, so long as you've
# already fetched all the dependencies.
load("@toolchains_protoc//protoc:repositories.bzl", "rules_protoc_dependencies")
rules_protoc_dependencies()
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies")
rules_proto_dependencies()
load("@bazel_features//:deps.bzl", "bazel_features_deps")
bazel_features_deps()
load("@toolchains_protoc//protoc:toolchain.bzl", "protoc_toolchains")
protoc_toolchains(
name = "protoc_toolchains",
version = "v25.3",
)
What's Changed
- chore: add load statement for rules_shell by @alexeagle in #74
- fix: bzlmod users don't need to register toolchain by @alexeagle in #75
- ci: setup aspect workflows by @alexeagle in #78
- chore: mirror protobuf 3.19.6 release by @alexeagle in #79
Full Changelog: v0.4.2...v0.4.3