Skip to content

Commit

Permalink
Add load() statements for Python rules in third_party/
Browse files Browse the repository at this point in the history
This replaces all direct uses of the native Python rules underneath the
third_party/ directory with load()s of the internal wrapper macros. These
macros are needed for compatibility with
`--incompatible_load_python_rules_from_bzl`.

Some of the uses are replaced by the file under the tools/ dir, which is
already used elsewhere in Bazel. A few uses have to use a new @rules_python
repo (see also #9029).

Work toward #9006.

RELNOTES: None
  • Loading branch information
brandjon committed Aug 1, 2019
1 parent 78a7ca2 commit 299c56b
Show file tree
Hide file tree
Showing 10 changed files with 40 additions and 2 deletions.
4 changes: 4 additions & 0 deletions third_party/def_parser/BUILD
@@ -1,3 +1,7 @@
# Needed for #9006. Consider replacing label with @rules_python as per #9029 if
# merging from upstream becomes an issue.
load("//tools/python:private/defs.bzl", "py_test")

licenses(["notice"]) # 3-clause BSD

package(
Expand Down
2 changes: 2 additions & 0 deletions third_party/protobuf/3.6.1/BUILD
Expand Up @@ -21,6 +21,8 @@ config_setting(

load(":protobuf.bzl", "py_proto_library")
load(":compiler_config_setting.bzl", "create_compiler_config_setting")
# Needed for #9006. Hopefully a future upstream version will include this line.
load("@rules_python//python:defs.bzl", "py_library")

filegroup(
name = "srcs",
Expand Down
7 changes: 5 additions & 2 deletions third_party/protobuf/3.6.1/protobuf.bzl
@@ -1,3 +1,6 @@
# Needed for #9006. Hopefully a future upstream version will include this line.
load("@rules_python//python:defs.bzl", "py_library", "py_test")

def _GetPath(ctx, path):
if ctx.label.workspace_root:
return ctx.label.workspace_root + "/" + path
Expand Down Expand Up @@ -383,7 +386,7 @@ def py_proto_library(
if default_runtime and not default_runtime in py_libs + deps:
py_libs = py_libs + [default_runtime]

native.py_library(
py_library(
name = name,
srcs = outs + py_extra_srcs,
deps = py_libs + deps,
Expand All @@ -406,7 +409,7 @@ def internal_protobuf_py_tests(
"""
for m in modules:
s = "python/google/protobuf/internal/%s.py" % m
native.py_test(
py_test(
name = "py_%s" % m,
srcs = [s],
main = s,
Expand Down
3 changes: 3 additions & 0 deletions third_party/protobuf/3.6.1/six.BUILD
@@ -1,3 +1,6 @@
# Needed for #9006. Hopefully a future upstream version will include this line.
load("@rules_python//python:defs.bzl", "py_library")

genrule(
name = "copy_six",
srcs = ["six-1.10.0/six.py"],
Expand Down
5 changes: 5 additions & 0 deletions third_party/protobuf/README.md
Expand Up @@ -43,6 +43,11 @@ You will create and merge the following Pull Requests.
copy the `licenses` declaration and the `srcs` filegroup to the corresponding file under
`third_party/protobuf/<new_proto>`.

1. Modify the new protobuf to be compatible with #9006 (until upstream protobuf migrates):
In the `BUILD`, `protobuf.bzl`, and `six.BUILD` files under `third_party/protobuf/<new_proto>`,
copy the line that loads from `@rules_python` along with its explanatory comment, from the
corresponding files in the old proto directory. (See also #9019.)

1. In `third_party/protobuf/<new_proto>/BUILD`, in the `srcs` filegroup rule, update the version
number referring to the newly added `srcs` rules.

Expand Down
4 changes: 4 additions & 0 deletions third_party/py/abseil/BUILD
@@ -1,3 +1,7 @@
# Needed for #9006. Consider replacing label with @rules_python as per #9029 if
# merging from upstream becomes an issue.
load("//tools/python:private/defs.bzl", "py_library")

licenses(["notice"])

filegroup(
Expand Down
4 changes: 4 additions & 0 deletions third_party/py/concurrent/BUILD
@@ -1,3 +1,7 @@
# Needed for #9006. Consider replacing label with @rules_python as per #9029 if
# merging from upstream becomes an issue.
load("//tools/python:private/defs.bzl", "py_library")

licenses(["notice"])

filegroup(
Expand Down
4 changes: 4 additions & 0 deletions third_party/py/gflags/BUILD
@@ -1,3 +1,7 @@
# Needed for #9006. Consider replacing label with @rules_python as per #9029 if
# merging from upstream becomes an issue.
load("//tools/python:private/defs.bzl", "py_library")

licenses(["notice"])

filegroup(
Expand Down
4 changes: 4 additions & 0 deletions third_party/py/mock/BUILD
@@ -1,3 +1,7 @@
# Needed for #9006. Consider replacing label with @rules_python as per #9029 if
# merging from upstream becomes an issue.
load("//tools/python:private/defs.bzl", "py_library")

licenses(["notice"])

filegroup(
Expand Down
5 changes: 5 additions & 0 deletions third_party/py/six/BUILD
@@ -1,3 +1,8 @@
# Needed for #9006. We can't easily replace this label with a @rules_python
# label (#9029) because this file is used in both @io_bazel and @bazel_tools,
# the latter of which can't reference other repos.
load("//tools/python:private/defs.bzl", "py_library")

licenses(["notice"])

filegroup(
Expand Down

0 comments on commit 299c56b

Please sign in to comment.