Change rules_proto loads to protobuf
PiperOrigin-RevId: 681872027
Change-Id: I89725e873bbfe61ab46f6c7483477d4af796db71
diff --git a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
index 171a2cb..9d9c8d1 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
@@ -727,9 +727,7 @@
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
- help =
- "If true, proto lang rules define toolchains from rules_proto, rules_java, rules_cc"
- + " repositories.")
+ help = "If true, proto lang rules define toolchains from protobuf repository.")
public boolean incompatibleEnableProtoToolchainResolution;
// Flip when java_single_jar is feature complete
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/proto/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/proto/BUILD
index 914bfbc..121660c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/proto/BUILD
@@ -1,5 +1,5 @@
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
-load("@rules_proto//proto:defs.bzl", "proto_library")
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
package(default_visibility = ["//src:__pkg__"])
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/proto/ProtoCommonApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/proto/ProtoCommonApi.java
index 85b612f..8a65886 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/proto/ProtoCommonApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/proto/ProtoCommonApi.java
@@ -26,9 +26,5 @@
@StarlarkBuiltin(
name = "proto_common",
category = DocCategory.TOP_LEVEL_MODULE,
- doc =
- "Utilities for protocol buffers. <p>Please consider using"
- + " <code>load(\"@rules_proto//proto:defs.bzl\", \"proto_common\")</code> to load this"
- + " symbol from <a href=\"https://github.com/bazelbuild/rules_proto\">rules_proto</a>."
- + "</p>")
+ doc = "Private utilities for protocol buffers. Do not use.")
public interface ProtoCommonApi extends StarlarkValue {}
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkdebug/proto/BUILD b/src/main/java/com/google/devtools/build/lib/starlarkdebug/proto/BUILD
index 0459dd0..bc4935e 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkdebug/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/starlarkdebug/proto/BUILD
@@ -1,5 +1,5 @@
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
-load("@rules_proto//proto:defs.bzl", "proto_library")
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
package(default_visibility = ["//src:__subpackages__"])
diff --git a/src/main/java/com/google/devtools/build/skyframe/BUILD b/src/main/java/com/google/devtools/build/skyframe/BUILD
index 4c3398d..e46f13b 100644
--- a/src/main/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/skyframe/BUILD
@@ -1,5 +1,5 @@
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@rules_java//java:defs.bzl", "java_library")
-load("@rules_proto//proto:defs.bzl", "proto_library")
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
# Description:
diff --git a/src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain.bzl b/src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain.bzl
index 32588e6..e91297b 100644
--- a/src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain.bzl
+++ b/src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain.bzl
@@ -66,8 +66,8 @@
proto_lang_toolchain = rule(
_rule_impl,
doc = """
-<p>If using Bazel, please load the rule from <a href="https://github.com/bazelbuild/rules_proto">
-https://github.com/bazelbuild/rules_proto</a>.
+<p>If using Bazel, please load the rule from <a href="https://github.com/google/protobuf">
+https://github.com/google/protobuf</a>.
<p>Specifies how a LANG_proto_library rule (e.g., <code>java_proto_library</code>) should invoke the
proto-compiler.
diff --git a/src/main/starlark/builtins_bzl/common/proto/proto_library.bzl b/src/main/starlark/builtins_bzl/common/proto/proto_library.bzl
index 6588a35..976b6c3 100644
--- a/src/main/starlark/builtins_bzl/common/proto/proto_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/proto/proto_library.bzl
@@ -235,8 +235,8 @@
# TODO(b/311576642): proto_common docs are missing
# TODO(b/311576642): ProtoInfo link doesn't work and docs are missing
doc = """
-<p>If using Bazel, please load the rule from <a href="https://github.com/bazelbuild/rules_proto">
-https://github.com/bazelbuild/rules_proto</a>.
+<p>If using Bazel, please load the rule from <a href="https://github.com/google/protobuf">
+https://github.com/google/protobuf</a>.
<p>Use <code>proto_library</code> to define libraries of protocol buffers which
may be used from multiple languages. A <code>proto_library</code> may be listed
diff --git a/src/main/starlark/builtins_bzl/common/proto/proto_semantics.bzl b/src/main/starlark/builtins_bzl/common/proto/proto_semantics.bzl
index 80590a3..7d80cfb 100644
--- a/src/main/starlark/builtins_bzl/common/proto/proto_semantics.bzl
+++ b/src/main/starlark/builtins_bzl/common/proto/proto_semantics.bzl
@@ -17,7 +17,7 @@
"""
semantics = struct(
- PROTO_TOOLCHAIN = "@rules_proto//proto:toolchain_type",
+ PROTO_TOOLCHAIN = "@protobuf//bazel/private:proto_toolchain_type",
# This constant is used in ProtoCompileActionBuilder to generate an error message that's
# displayed when a strict proto deps violation occurs.
#
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
index 8b40038..c953598 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
@@ -356,6 +356,7 @@
}
public static void setupWorkspace(MockToolsConfig config) throws IOException {
+ // TODO - ilist@: Remove after Google proto_library doesn't depend on rules_proto
config.create(
"third_party/bazel_rules/rules_proto/proto/BUILD",
"""
@@ -367,25 +368,24 @@
)
""");
config.create(
- "third_party/bazel_rules/rules_proto/proto/defs.bzl",
+ "protobuf_workspace/bazel/private/BUILD",
"""
- load(":proto_lang_toolchain.bzl", _proto_lang_toolchain = "proto_lang_toolchain")
+ licenses(["notice"])
- def _add_tags(kargs):
- if "tags" in kargs:
- kargs["tags"] += ["__PROTO_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"]
- else:
- kargs["tags"] = ["__PROTO_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"]
- return kargs
-
+ toolchain_type(
+ name = "proto_toolchain_type",
+ visibility = ["//visibility:public"],
+ )
+ """);
+ config.create("protobuf_workspace/bazel/BUILD");
+ config.create(
+ "protobuf_workspace/bazel/proto_library.bzl",
+ """
def proto_library(**kargs):
- native.proto_library(**_add_tags(kargs))
-
- def proto_lang_toolchain(**kargs):
- _proto_lang_toolchain(**_add_tags(kargs))
+ native.proto_library(**kargs)
""");
config.create(
- "third_party/bazel_rules/rules_proto/proto/proto_toolchain.bzl",
+ "protobuf_workspace/bazel/toolchains/proto_toolchain.bzl",
"load(':proto_toolchain_rule.bzl', _proto_toolchain_rule = 'proto_toolchain')",
"def proto_toolchain(*, name, proto_compiler, exec_compatible_with = []):",
" _proto_toolchain_rule(name = name, proto_compiler = proto_compiler)",
@@ -396,8 +396,9 @@
" target_compatible_with = [],",
" toolchain = name,",
" )");
+ config.create("protobuf_workspace/bazel/toolchains/BUILD");
config.create(
- "third_party/bazel_rules/rules_proto/proto/proto_toolchain_rule.bzl",
+ "protobuf_workspace/bazel/toolchains/proto_toolchain_rule.bzl",
"""
ProtoLangToolchainInfo = proto_common_do_not_use.ProtoLangToolchainInfo
@@ -419,7 +420,7 @@
mnemonic = ctx.attr.mnemonic,
allowlist_different_package = None,
toolchain_type =
- "//third_party/bazel_rules/rules_proto/proto:toolchain_type",
+ "//protobuf/bazel/private:proto_toolchain_type",
),
),
]
@@ -446,7 +447,7 @@
)
""");
config.create(
- "third_party/bazel_rules/rules_proto/proto/proto_lang_toolchain.bzl",
+ "protobuf_workspace/bazel/toolchains/proto_lang_toolchain.bzl",
"""
def proto_lang_toolchain(
*,
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
index 9413b14..f00a6ce 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
@@ -24,12 +24,12 @@
public class TestConstants {
public static final String LOAD_PROTO_LIBRARY =
- "load('@rules_proto//proto:defs.bzl', 'proto_library')";
- public static final String PROTO_TOOLCHAIN = "@rules_proto//proto:toolchain_type";
+ "load('@protobuf//bazel:proto_library.bzl', 'proto_library')";
+ public static final String PROTO_TOOLCHAIN = "@protobuf//bazel/private:proto_toolchain_type";
public static final String LOAD_PROTO_TOOLCHAIN =
- "load('@rules_proto//proto:proto_toolchain.bzl', 'proto_toolchain')";
+ "load('@protobuf//bazel/toolchains:proto_toolchain.bzl', 'proto_toolchain')";
public static final String LOAD_PROTO_LANG_TOOLCHAIN =
- "load('@rules_proto//proto:defs.bzl', 'proto_lang_toolchain')";
+ "load('@protobuf//bazel/toolchains:proto_lang_toolchain.bzl', 'proto_lang_toolchain')";
private TestConstants() {
}
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index 928d238..ffa4352 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -32,6 +32,7 @@
":test-deps-wo-bazel",
"//src:bazel",
"//src/test/shell:bin/bazel",
+ "//third_party/protobuf:remove_rules_rust.patch",
],
visibility = [
"//src/main/starlark/tests/builtins_bzl:__subpackages__",
diff --git a/src/test/shell/bazel/bazel_java17_test.sh b/src/test/shell/bazel/bazel_java17_test.sh
index c836759..3b104e9 100755
--- a/src/test/shell/bazel/bazel_java17_test.sh
+++ b/src/test/shell/bazel/bazel_java17_test.sh
@@ -61,6 +61,8 @@
add_to_bazelrc "build --java_runtime_version=11"
add_to_bazelrc "build --tool_java_runtime_version=11"
+add_protobuf "MODULE.bazel"
+
# Java source files version shall match --java_language_version_flag version.
function test_java17_text_block() {
mkdir -p java/main
diff --git a/src/test/shell/bazel/bazel_java_tools_test.sh b/src/test/shell/bazel/bazel_java_tools_test.sh
index 22f3771..e64d0b6 100755
--- a/src/test/shell/bazel/bazel_java_tools_test.sh
+++ b/src/test/shell/bazel/bazel_java_tools_test.sh
@@ -82,6 +82,7 @@
# Dependencies of java_tools
add_platforms "MODULE.bazel"
add_rules_cc "MODULE.bazel"
+ # TODO - ilist@: point java_tools to protobuf; requires coordinated release of rules_java and java_tools
add_rules_proto "MODULE.bazel"
add_rules_license "MODULE.bazel"
}
diff --git a/src/test/shell/bazel/bazel_proto_library_test.sh b/src/test/shell/bazel/bazel_proto_library_test.sh
index 712a524..f8eef33 100755
--- a/src/test/shell/bazel/bazel_proto_library_test.sh
+++ b/src/test/shell/bazel/bazel_proto_library_test.sh
@@ -23,7 +23,7 @@
|| { echo "integration_test_setup.sh not found!" >&2; exit 1; }
function set_up() {
- add_rules_proto "MODULE.bazel"
+ add_protobuf "MODULE.bazel"
}
# Creates directories and files with the structure:
@@ -53,7 +53,7 @@
extra_attribute=$2
include_macro=$3
if [ "${include_macro}" -eq "" ]; then
- include_macro="load('@rules_proto//proto:defs.bzl', 'proto_library')"
+ include_macro="load('@protobuf//bazel:proto_library.bzl', 'proto_library')"
fi
cat > x/person/BUILD << EOF
@@ -134,7 +134,7 @@
touch proto_library/BUILD
cat > proto_library/src/BUILD << EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "all",
srcs = glob(["*.proto"]),
@@ -203,7 +203,7 @@
touch a/b/BUILD
cat > a/b/src/BUILD <<EOF
package(default_visibility = ["//visibility:public"])
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "all_protos",
srcs = glob(["*.proto"]),
@@ -243,7 +243,7 @@
cat > c/d/src/BUILD <<EOF
package(default_visibility = ["//visibility:public"])
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "all_protos",
srcs = glob(["*.proto"]),
@@ -282,7 +282,7 @@
EOF
cat > macros/proto_library_macro.bzl << EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
def proto_library_macro(name, srcs, deps = []):
proto_library(
name = name,
@@ -333,7 +333,6 @@
############# TESTS #############
function test_legacy_proto_library_include_well_known_protos() {
- add_protobuf "MODULE.bazel"
mkdir -p a
cat > a/BUILD <<EOF
proto_library(
@@ -491,7 +490,7 @@
function test_cc_proto_library() {
mkdir -p a
cat > a/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(name='p', srcs=['p.proto'])
cc_proto_library(name='cp', deps=[':p'])
cc_library(name='c', srcs=['c.cc'], deps=[':cp'])
@@ -519,7 +518,7 @@
function test_cc_proto_library_with_toolchain_resolution() {
mkdir -p a
cat > a/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(name='p', srcs=['p.proto'])
cc_proto_library(name='cp', deps=[':p'])
cc_library(name='c', srcs=['c.cc'], deps=[':cp'])
@@ -547,7 +546,7 @@
function test_cc_proto_library_import_prefix_stripping() {
mkdir -p a/dir
cat > a/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(name='p', srcs=['dir/p.proto'], strip_import_prefix='/a')
cc_proto_library(name='cp', deps=[':p'])
cc_library(name='c', srcs=['c.cc'], deps=[':cp'])
@@ -586,7 +585,7 @@
mkdir -p e/f/bad
cat > e/f/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "f",
strip_import_prefix = "bad",
@@ -607,7 +606,7 @@
mkdir -p g/bad
cat > g/BUILD << EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = 'g',
strip_import_prefix = "/g/bad",
@@ -628,7 +627,7 @@
mkdir -p h
cat > h/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "h",
srcs = ["h.proto"],
@@ -685,7 +684,7 @@
mkdir -p e/f/good
cat > e/f/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "f",
srcs = ["good/f.proto"],
@@ -722,7 +721,7 @@
mkdir -p g/good
cat > g/BUILD << EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = 'g',
srcs = ['good/g.proto'],
@@ -741,7 +740,7 @@
mkdir -p h
cat > h/BUILD <<EOF
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
proto_library(
name = "h",
srcs = ["h.proto"],
diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh
index a534df5..6124053 100755
--- a/src/test/shell/testenv.sh
+++ b/src/test/shell/testenv.sh
@@ -583,6 +583,7 @@
add_bazel_dep "rules_python" "$1"
}
+# Needed only for java_tools
function add_rules_proto() {
add_bazel_dep "rules_proto" "$1"
}
@@ -593,6 +594,22 @@
function add_protobuf() {
add_bazel_dep "protobuf" "$1"
+ mkdir -p third_party/protobuf
+ touch third_party/protobuf/BUILD
+ cp "$(rlocation io_bazel/third_party/protobuf/remove_rules_rust.patch)" third_party/protobuf/remove_rules_rust.patch
+ cat >> "$1" <<EOF
+archive_override(
+ module_name = "protobuf",
+ integrity = "sha256-zF1Z3SMnHqcP1QKIeAoGGZDEARNXRWRgZi70eKldVlc=",
+ patch_strip = 1,
+ # Temporarily patch out rules_rust stuff from protobuf. Not just because we don't need it,
+ # but also because it introduces huge dependency bloat: rules_rust -> aspect_rules_js ->
+ # aspect_rules_lint -> rules_buf.
+ patches = ["//third_party/protobuf:remove_rules_rust.patch"],
+ strip_prefix = "protobuf-3b62052186d39775090fb074adcba078ea622f54",
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/3b62052186d39775090fb074adcba078ea622f54.zip"],
+)
+EOF
}
function add_rules_testing() {
diff --git a/third_party/remoteapis/BUILD.bazel b/third_party/remoteapis/BUILD.bazel
index 7f16719..412e888 100644
--- a/third_party/remoteapis/BUILD.bazel
+++ b/third_party/remoteapis/BUILD.bazel
@@ -1,7 +1,7 @@
load("@io_bazel//third_party/grpc:build_defs.bzl", "java_grpc_library")
load("@io_bazel//tools/build_rules:utilities.bzl", "java_library_srcs")
+load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
-load("@rules_proto//proto:defs.bzl", "proto_library")
package(default_visibility = ["//visibility:public"])
@@ -44,10 +44,10 @@
srcs = ["build/bazel/remote/asset/v1/remote_asset.proto"],
deps = [
":build_bazel_remote_execution_v2_remote_execution_proto",
- "@protobuf//:duration_proto",
- "@protobuf//:timestamp_proto",
"@googleapis//google/api:annotations_proto",
"@googleapis//google/rpc:status_proto",
+ "@protobuf//:duration_proto",
+ "@protobuf//:timestamp_proto",
],
)
@@ -56,14 +56,14 @@
srcs = ["build/bazel/remote/execution/v2/remote_execution.proto"],
deps = [
":build_bazel_semver_semver_proto",
- "@protobuf//:any_proto",
- "@protobuf//:duration_proto",
- "@protobuf//:timestamp_proto",
- "@protobuf//:wrappers_proto",
"@googleapis//google/api:annotations_proto",
"@googleapis//google/api:http_proto",
"@googleapis//google/longrunning:operations_proto",
"@googleapis//google/rpc:status_proto",
+ "@protobuf//:any_proto",
+ "@protobuf//:duration_proto",
+ "@protobuf//:timestamp_proto",
+ "@protobuf//:wrappers_proto",
],
)
diff --git a/tools/distributions/debian/protobuf/BUILD b/tools/distributions/debian/protobuf/BUILD
index 07307ac..ca2e76a 100644
--- a/tools/distributions/debian/protobuf/BUILD
+++ b/tools/distributions/debian/protobuf/BUILD
@@ -1,4 +1,4 @@
-load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain")
+load("@protobuf//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain")
package(default_visibility = ["//visibility:public"])
diff --git a/tools/j2objc/BUILD.tools b/tools/j2objc/BUILD.tools
index c9b7b65..b66c36d 100644
--- a/tools/j2objc/BUILD.tools
+++ b/tools/j2objc/BUILD.tools
@@ -1,5 +1,5 @@
load("@rules_java//java:defs.bzl", "java_binary")
-load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain")
+load("@protobuf//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain")
package(default_visibility = ["//visibility:public"])
diff --git a/tools/jdk/BUILD.java_tools b/tools/jdk/BUILD.java_tools
index aa6b15b..f48d69b 100644
--- a/tools/jdk/BUILD.java_tools
+++ b/tools/jdk/BUILD.java_tools
@@ -4,6 +4,7 @@
licenses(["notice"]) # Apache 2.0
+# TODO - ilist@: point java_tools to protobuf; requires coordinated release of rules_java and java_tools
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library")
load("@rules_proto//proto:defs.bzl", "proto_library")