Adds load statement for @rules_proto
This is in preparation for --incompatible_load_proto_rules_from_bzl
Closes #8961.
PiperOrigin-RevId: 259931357
diff --git a/WORKSPACE b/WORKSPACE
index 8c59b4e..a51e0bf 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -105,7 +105,7 @@
distdir_tar(
name = "additional_distfiles",
- # Keep in sync with the archives fetched as part of building bazel
+ # Keep in sync with the archives fetched as part of building bazel.
archives = [
"e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
"f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
@@ -127,6 +127,8 @@
"0.27.1.tar.gz",
# bazelbuild/rules_pkg
"rules_pkg-0.2.0.tar.gz",
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
],
dirname = "derived/distdir",
sha256 = {
@@ -150,6 +152,8 @@
"0.27.1.tar.gz": "28cb3666da80fbc62d4c46814f5468dd5d0b59f9064c0b933eee3140d706d330",
# bazelbuild/rules_pkg
"rules_pkg-0.2.0.tar.gz": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
},
urls = {
"e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": [
@@ -212,6 +216,11 @@
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
"https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz",
],
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ ],
},
)
@@ -454,6 +463,16 @@
],
)
+http_archive(
+ name = "rules_proto",
+ sha256 = "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
+ strip_prefix = "rules_proto-b0cc14be5da05168b01db282fe93bdf17aa2b9f4",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ ],
+)
+
# For testing, have an distdir_tar with all the archives implicit in every
# WORKSPACE, to that they don't have to be refetched for every test
# calling `bazel sync`.
@@ -486,6 +505,8 @@
"7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
# bazelbuild/rules_cc
"0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
],
dirname = "test_WORKSPACE/distdir",
sha256 = {
@@ -515,6 +536,8 @@
"7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
# bazelbuild/rules_cc
"0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
},
urls = {
"zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"],
@@ -554,6 +577,11 @@
"https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
"https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
],
+ # bazelbuild/rules_proto
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ ],
},
)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/debug/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/debug/BUILD
index 8cb3158..e794dcf 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/debug/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/debug/BUILD
@@ -5,6 +5,7 @@
)
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
+load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
name = "srcs",
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD
index 0a91766..e399211b 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD
@@ -1,6 +1,7 @@
package(default_visibility = ["//src:__subpackages__"])
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
+load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
name = "srcs",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/proto/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkdebug/proto/BUILD
index f310282..d290adc 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/proto/BUILD
@@ -1,6 +1,7 @@
package(default_visibility = ["//src:__subpackages__"])
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
+load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
name = "srcs",
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/proto/BUILD b/src/main/java/com/google/devtools/build/skydoc/rendering/proto/BUILD
index 510022e..18098fc 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/proto/BUILD
@@ -6,6 +6,7 @@
)
load("//tools/build_rules:utilities.bzl", "java_library_srcs")
+load("@rules_proto//proto:defs.bzl", "proto_library")
licenses(["notice"]) # Apache 2.0
diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD
index 066fc5e..c0258c8 100644
--- a/src/main/protobuf/BUILD
+++ b/src/main/protobuf/BUILD
@@ -5,6 +5,7 @@
load("//third_party/protobuf/3.6.1:protobuf.bzl", "py_proto_library")
load("//third_party/grpc:build_defs.bzl", "java_grpc_library")
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
+load("@rules_proto//proto:defs.bzl", "proto_library")
exports_files(
["execution_statitics.proto"],
diff --git a/src/tools/android/java/com/google/devtools/build/android/proto/BUILD b/src/tools/android/java/com/google/devtools/build/android/proto/BUILD
index e0ac5d6..a5fe7d1 100644
--- a/src/tools/android/java/com/google/devtools/build/android/proto/BUILD
+++ b/src/tools/android/java/com/google/devtools/build/android/proto/BUILD
@@ -2,6 +2,8 @@
package(default_visibility = ["//visibility:public"])
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
java_proto_library(
name = "serialize_format_java_pb",
deps = [":serialize_format_proto"],
diff --git a/tools/BUILD b/tools/BUILD
index 65c85e2..479da90 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -85,3 +85,8 @@
],
visibility = ["//src:__pkg__"],
)
+
+sh_binary(
+ name = "upload_bazel_mirror",
+ srcs = ["upload_bazel_mirror.sh"],
+)
diff --git a/tools/upload_bazel_mirror.sh b/tools/upload_bazel_mirror.sh
new file mode 100755
index 0000000..1e75ff0
--- /dev/null
+++ b/tools/upload_bazel_mirror.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This script fetches
+# `https://github.com/bazelbuild/<rules_xyz>/archive/<version>.tar.gz`
+# and uploads it to the cannonical location on `https://mirror.bazel.build`.
+
+set -euo pipefail
+
+function validate_input {
+ local n="$1"
+ local input="$2"
+ # Valid inputs contain only alphanumeric letters or [_-.]
+ # and must be between 3 (e.g. numbered releases like 0.1 or 1.0) and 40
+ # (e.g. git commit hashes) characters long.
+ if [[ ! "${input}" =~ ^[a-zA-Z0-9_\\-\\.]{3,40}$ ]]; then
+ echo "Argument ${n} with value '${input}' contains invalid characters," \
+ "or is not between 3 and 40 characters long"
+ exit 1
+ fi
+}
+
+if [ "$#" -ne 2 ]; then
+ echo "Usage: bazel run //tools:upload_bazel_mirror -- <rules_xyz> <version>"
+ exit 1
+fi
+
+REPO="$1"
+validate_input 1 "${REPO}"
+
+# TODO(yannic): Add option to get latest commit or release from GitHub API.
+VERSION="$2"
+validate_input 2 "${VERSION}"
+
+# Create a temp directory to hold the versioned tarball,
+# and clean it up when the script exits.
+tmpdir="$(mktemp -d)"
+function cleanup {
+ rm -rf "$tmpdir"
+}
+trap cleanup EXIT
+
+url="https://github.com/bazelbuild/${REPO}/archive/${VERSION}.tar.gz"
+versioned_filename="${REPO}-${VERSION}.tar.gz"
+versioned_archive="${tmpdir}/${versioned_filename}"
+
+# Download tarball into temporary folder.
+# -L to follow redirects.
+curl -L --fail --output "${versioned_archive}" "${url}"
+
+# Upload the tarball to GCS.
+# -n for no-clobber, so we don't overwrite existing files
+gsutil cp -n "${versioned_archive}" \
+ "gs://bazel-mirror/github.com/bazelbuild/${REPO}/archive/${VERSION}.tar.gz"