Add python bazel deps needed to run resolver component tests

pull/14411/head
Alex Polcyn 7 years ago committed by Alexander Polcyn
parent 86accb1768
commit aa56034b58
  1. 3
      WORKSPACE
  2. 6
      bazel/grpc_build_system.bzl
  3. 54
      bazel/grpc_deps.bzl
  4. 5
      third_party/BUILD
  5. 7
      third_party/constantly.BUILD
  6. 10
      third_party/incremental.BUILD
  7. 15
      third_party/twisted.BUILD
  8. 10
      third_party/yaml.BUILD
  9. 13
      third_party/zope_interface.BUILD
  10. 37
      tools/run_tests/sanity/check_bazel_workspace.py

@ -1,4 +1,5 @@
workspace(name = "com_github_grpc_grpc")
load("//bazel:grpc_deps.bzl", "grpc_deps")
load("//bazel:grpc_deps.bzl", "grpc_deps", "grpc_test_only_deps")
grpc_deps()
grpc_test_only_deps()

@ -165,8 +165,10 @@ def grpc_sh_binary(name, srcs, data = []):
def grpc_py_binary(name, srcs, data = [], deps = []):
if name == "test_dns_server":
# TODO: allow running test_dns_server in oss bazel test suite
deps = []
deps = _get_external_deps([
"twisted",
"yaml",
])
native.py_binary(
name = name,
srcs = srcs,

@ -127,3 +127,57 @@ def grpc_deps():
],
sha256 = "ed829b5eea8af1f405f4cc3d6ecfc3b1365bb7843171036030a31b5127002311",
)
# TODO: move some dependencies from "grpc_deps" here?
def grpc_test_only_deps():
"""Internal, not intended for use by packages that are consuming grpc.
Loads dependencies that are only needed to run grpc library's tests."""
native.bind(
name = "twisted",
actual = "@com_github_twisted_twisted//:twisted",
)
native.bind(
name = "yaml",
actual = "@com_github_yaml_pyyaml//:yaml",
)
if "com_github_twisted_twisted" not in native.existing_rules():
native.new_http_archive(
name = "com_github_twisted_twisted",
strip_prefix = "twisted-twisted-17.5.0",
url = "https://github.com/twisted/twisted/archive/twisted-17.5.0.zip",
build_file = "@com_github_grpc_grpc//third_party:twisted.BUILD",
)
if "com_github_yaml_pyyaml" not in native.existing_rules():
native.new_http_archive(
name = "com_github_yaml_pyyaml",
strip_prefix = "pyyaml-3.12",
url = "https://github.com/yaml/pyyaml/archive/3.12.zip",
build_file = "@com_github_grpc_grpc//third_party:yaml.BUILD",
)
if "com_github_twisted_incremental" not in native.existing_rules():
native.new_http_archive(
name = "com_github_twisted_incremental",
strip_prefix = "incremental-incremental-17.5.0",
url = "https://github.com/twisted/incremental/archive/incremental-17.5.0.zip",
build_file = "@com_github_grpc_grpc//third_party:incremental.BUILD",
)
if "com_github_zopefoundation_zope_interface" not in native.existing_rules():
native.new_http_archive(
name = "com_github_zopefoundation_zope_interface",
strip_prefix = "zope.interface-4.4.3",
url = "https://github.com/zopefoundation/zope.interface/archive/4.4.3.zip",
build_file = "@com_github_grpc_grpc//third_party:zope_interface.BUILD",
)
if "com_github_twisted_constantly" not in native.existing_rules():
native.new_http_archive(
name = "com_github_twisted_constantly",
strip_prefix = "constantly-15.1.0",
url = "https://github.com/twisted/constantly/archive/15.1.0.zip",
build_file = "@com_github_grpc_grpc//third_party:constantly.BUILD",
)

5
third_party/BUILD vendored

@ -3,4 +3,9 @@ exports_files([
"gtest.BUILD",
"objective_c/Cronet/bidirectional_stream_c.h",
"zlib.BUILD",
"twisted.BUILD",
"yaml.BUILD",
"incremental.BUILD",
"zope_interface.BUILD",
"constantly.BUILD",
])

@ -0,0 +1,7 @@
py_library(
name = "constantly",
srcs = glob(["constantly/*.py"]),
visibility = [
"//visibility:public",
],
)

@ -0,0 +1,10 @@
py_library(
name = "incremental",
srcs = glob(["src/incremental/*.py"]),
imports = [
"src",
],
visibility = [
"//visibility:public",
],
)

@ -0,0 +1,15 @@
py_library(
name = "twisted",
srcs = glob(["src/twisted/**/*.py"]),
imports = [
"src",
],
visibility = [
"//visibility:public",
],
deps = [
"@com_github_twisted_incremental//:incremental",
"@com_github_twisted_constantly//:constantly",
"@com_github_zopefoundation_zope_interface//:zope_interface",
],
)

@ -0,0 +1,10 @@
py_library(
name = "yaml",
srcs = glob(["lib/yaml/*.py"]),
imports = [
"lib",
],
visibility = [
"//visibility:public",
],
)

@ -0,0 +1,13 @@
py_library(
name = "zope_interface",
srcs = glob([
"src/zope/interface/*.py",
"src/zope/interface/common/*.py",
]),
imports = [
"src",
],
visibility = [
"//visibility:public",
],
)

@ -35,6 +35,11 @@ git_submodule_hashes = {
}
_BAZEL_TOOLCHAINS_DEP_NAME = 'com_github_bazelbuild_bazeltoolchains'
_TWISTED_TWISTED_DEP_NAME = 'com_github_twisted_twisted'
_YAML_PYYAML_DEP_NAME = 'com_github_yaml_pyyaml'
_TWISTED_INCREMENTAL_DEP_NAME = 'com_github_twisted_incremental'
_ZOPEFOUNDATION_ZOPE_INTERFACE_DEP_NAME = 'com_github_zopefoundation_zope_interface'
_TWISTED_CONSTANTLY_DEP_NAME = 'com_github_twisted_constantly'
_GRPC_DEP_NAMES = [
'boringssl',
@ -46,6 +51,20 @@ _GRPC_DEP_NAMES = [
'com_github_cares_cares',
'com_google_absl',
_BAZEL_TOOLCHAINS_DEP_NAME,
_TWISTED_TWISTED_DEP_NAME,
_YAML_PYYAML_DEP_NAME,
_TWISTED_INCREMENTAL_DEP_NAME,
_ZOPEFOUNDATION_ZOPE_INTERFACE_DEP_NAME,
_TWISTED_CONSTANTLY_DEP_NAME,
]
_GRPC_BAZEL_ONLY_DEPS = [
_BAZEL_TOOLCHAINS_DEP_NAME,
_TWISTED_TWISTED_DEP_NAME,
_YAML_PYYAML_DEP_NAME,
_TWISTED_INCREMENTAL_DEP_NAME,
_ZOPEFOUNDATION_ZOPE_INTERFACE_DEP_NAME,
_TWISTED_CONSTANTLY_DEP_NAME,
]
@ -70,7 +89,8 @@ class BazelEvalState(object):
return []
def archive(self, **args):
if args['name'] == _BAZEL_TOOLCHAINS_DEP_NAME:
assert self.names_and_urls.get(args['name']) is None
if args['name'] in _GRPC_BAZEL_ONLY_DEPS:
self.names_and_urls[args['name']] = 'dont care'
return
self.names_and_urls[args['name']] = args['url']
@ -82,8 +102,10 @@ with open(os.path.join('bazel', 'grpc_deps.bzl'), 'r') as f:
eval_state = BazelEvalState(names_and_urls)
bazel_file = f.read()
# grpc_deps.bzl only defines 'grpc_deps', add this to call it
# grpc_deps.bzl only defines 'grpc_deps' and 'grpc_test_only_deps', add these
# lines to call them.
bazel_file += '\ngrpc_deps()\n'
bazel_file += '\ngrpc_test_only_deps()\n'
build_rules = {
'native': eval_state,
}
@ -92,11 +114,12 @@ for name in _GRPC_DEP_NAMES:
assert name in names_and_urls.keys()
assert len(_GRPC_DEP_NAMES) == len(names_and_urls.keys())
# bazeltoolschains is an exception to this sanity check,
# we don't require that there is a corresponding git module.
names_without_bazeltoolchains = names_and_urls.keys()
names_without_bazeltoolchains.remove(_BAZEL_TOOLCHAINS_DEP_NAME)
archive_urls = [names_and_urls[name] for name in names_without_bazeltoolchains]
# There are some "bazel-only" deps that are exceptions to this sanity check,
# we don't require that there is a corresponding git module for these.
names_without_bazel_only_deps = names_and_urls.keys()
for dep_name in _GRPC_BAZEL_ONLY_DEPS:
names_without_bazel_only_deps.remove(dep_name)
archive_urls = [names_and_urls[name] for name in names_without_bazel_only_deps]
workspace_git_hashes = {
re.search(git_hash_pattern, url).group()
for url in archive_urls

Loading…
Cancel
Save