Integrate GAPIC Python Bazel Extensions
Also configure python build for the following clients as an example: diaglogflow/v2 language/v1 texttospeech/v1 firestore/v1beta1 pubsub/v1 PiperOrigin-RevId: 279406526
This commit is contained in:
parent
7ffbf721e2
commit
248abde06e
44
WORKSPACE
44
WORKSPACE
|
|
@ -18,6 +18,7 @@ switched_rules_by_language(
|
|||
java = True,
|
||||
nodejs = True,
|
||||
php = True,
|
||||
python = True,
|
||||
ruby = True,
|
||||
)
|
||||
|
||||
|
|
@ -44,8 +45,8 @@ protobuf_deps()
|
|||
# section
|
||||
http_archive(
|
||||
name = "com_google_api_codegen",
|
||||
strip_prefix = "gapic-generator-c857a66d20ec00e739eb6334b7a95e27113397c7",
|
||||
urls = ["https://github.com/googleapis/gapic-generator/archive/c857a66d20ec00e739eb6334b7a95e27113397c7.zip"],
|
||||
strip_prefix = "gapic-generator-34da60e810b93ca7556df6ba21d16b771baaae32",
|
||||
urls = ["https://github.com/googleapis/gapic-generator/archive/34da60e810b93ca7556df6ba21d16b771baaae32.zip"],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
|
|
@ -62,8 +63,8 @@ http_archive(
|
|||
|
||||
http_archive(
|
||||
name = "com_github_grpc_grpc",
|
||||
strip_prefix = "grpc-0542eb59d9b7a75f16edfd9e3010c8d7d399626d", # this is 1.23.0 with fixes
|
||||
urls = ["https://github.com/grpc/grpc/archive/0542eb59d9b7a75f16edfd9e3010c8d7d399626d.zip"],
|
||||
strip_prefix = "grpc-8347f4753568b5b66e49111c60ae2841278d3f33", # this is 1.25.0 with fixes
|
||||
urls = ["https://github.com/grpc/grpc/archive/8347f4753568b5b66e49111c60ae2841278d3f33.zip"],
|
||||
)
|
||||
|
||||
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
|
||||
|
|
@ -88,19 +89,10 @@ apple_support_dependencies()
|
|||
# Java
|
||||
##############################################################################
|
||||
|
||||
# java_gapic artifacts runtime dependencies (gax-java)
|
||||
#
|
||||
# Keeping it here to see how this goes (what will be more maintainable: direct import of gax or via
|
||||
# gapic-generator).
|
||||
#
|
||||
#load("@com_google_api_codegen//rules_gapic/java:java_gapic_repositories.bzl", "java_gapic_repositories")
|
||||
#
|
||||
#java_gapic_repositories()
|
||||
|
||||
http_archive(
|
||||
name = "com_google_api_gax_java",
|
||||
strip_prefix = "gax-java-31b44b19cf7e312a1861310f049a18b69822eaca",
|
||||
urls = ["https://github.com/googleapis/gax-java/archive/31b44b19cf7e312a1861310f049a18b69822eaca.zip"],
|
||||
strip_prefix = "gax-java-1.50.1",
|
||||
urls = ["https://github.com/googleapis/gax-java/archive/v1.50.1.zip"],
|
||||
)
|
||||
|
||||
load("@com_google_api_gax_java//:repository_rules.bzl", "com_google_api_gax_java_properties")
|
||||
|
|
@ -142,6 +134,28 @@ load(
|
|||
|
||||
com_google_protoc_java_resource_names_plugin_repositories()
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load("@com_google_api_codegen//rules_gapic/python:py_gapic_repositories.bzl", "py_gapic_repositories")
|
||||
|
||||
py_gapic_repositories()
|
||||
|
||||
local_repository(
|
||||
name = "protoc_docs_plugin",
|
||||
path = "/usr/local/google/home/vam/_/projects/github/vam-google/protoc-docs-plugin/protoc-docs-plugin",
|
||||
)
|
||||
|
||||
load(
|
||||
"@protoc_docs_plugin//:repositories.bzl",
|
||||
"protoc_docs_plugin_repositories",
|
||||
"protoc_docs_plugin_register_toolchains",
|
||||
)
|
||||
|
||||
protoc_docs_plugin_repositories()
|
||||
|
||||
protoc_docs_plugin_register_toolchains()
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
|
|
|
|||
|
|
@ -47,11 +47,6 @@ load(
|
|||
"java_gapic_test",
|
||||
)
|
||||
|
||||
_JAVA_GRPC_DEPS = [
|
||||
"@com_google_api_grpc_proto_google_common_protos//jar",
|
||||
"@com_google_api_grpc_proto_google_iam_v1//jar",
|
||||
]
|
||||
|
||||
java_proto_library(
|
||||
name = "bigtableadmin_java_proto",
|
||||
deps = [":bigtableadmin_proto"],
|
||||
|
|
|
|||
|
|
@ -42,11 +42,6 @@ load(
|
|||
"java_gapic_test",
|
||||
)
|
||||
|
||||
_JAVA_GRPC_DEPS = [
|
||||
"@com_google_api_grpc_proto_google_common_protos//jar",
|
||||
"@com_google_api_grpc_proto_google_iam_v1//jar",
|
||||
]
|
||||
|
||||
java_proto_library(
|
||||
name = "asset_java_proto",
|
||||
deps = [":asset_proto"],
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ java_gapic_library(
|
|||
name = "dialogflow_java_gapic",
|
||||
src = ":dialogflow_proto_with_info",
|
||||
gapic_yaml = "dialogflow_gapic.yaml",
|
||||
service_yaml = ":dialogflow_v2.yaml",
|
||||
service_yaml = "dialogflow_v2.yaml",
|
||||
test_deps = [":dialogflow_java_grpc"],
|
||||
deps = [":dialogflow_java_proto"],
|
||||
)
|
||||
|
|
@ -98,6 +98,69 @@ java_gapic_assembly_gradle_pkg(
|
|||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"moved_proto_library",
|
||||
"py_proto_library",
|
||||
"py_grpc_library",
|
||||
"py_gapic_library",
|
||||
"py_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
moved_proto_library(
|
||||
name = "dialogflow_moved_proto",
|
||||
srcs = [":dialogflow_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
"//google/api:resource_proto",
|
||||
"//google/longrunning:operations_proto",
|
||||
"//google/rpc:status_proto",
|
||||
"//google/type:latlng_proto",
|
||||
"@com_google_protobuf//:duration_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:field_mask_proto",
|
||||
"@com_google_protobuf//:struct_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "dialogflow_py_proto",
|
||||
deps = [":dialogflow_moved_proto"],
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "dialogflow_py_grpc",
|
||||
srcs = [":dialogflow_moved_proto"],
|
||||
deps = [":dialogflow_py_proto"],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "dialogflow_py_gapic",
|
||||
src = ":dialogflow_proto_with_info",
|
||||
gapic_yaml = "dialogflow_gapic.yaml",
|
||||
service_yaml = "dialogflow_v2.yaml",
|
||||
deps = [
|
||||
":dialogflow_py_proto",
|
||||
":dialogflow_py_grpc"
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_assembly_pkg(
|
||||
name = "dialogflow-v2-py",
|
||||
deps = [
|
||||
":dialogflow_py_gapic",
|
||||
":dialogflow_py_grpc",
|
||||
":dialogflow_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
|
|
@ -127,7 +190,7 @@ go_gapic_library(
|
|||
src = ":dialogflow_proto_with_info",
|
||||
gapic_yaml = "dialogflow_gapic.yaml",
|
||||
importpath = "cloud.google.com/go/dialogflow/apiv2",
|
||||
service_yaml = ":dialogflow_v2.yaml",
|
||||
service_yaml = "dialogflow_v2.yaml",
|
||||
deps = [
|
||||
":dialogflow_go_proto",
|
||||
"//google/longrunning:longrunning_go_gapic",
|
||||
|
|
|
|||
|
|
@ -33,10 +33,6 @@ load(
|
|||
"java_gapic_test",
|
||||
)
|
||||
|
||||
_JAVA_GRPC_DEPS = [
|
||||
"@com_google_api_grpc_proto_google_common_protos//jar",
|
||||
]
|
||||
|
||||
java_proto_library(
|
||||
name = "language_java_proto",
|
||||
deps = [":language_proto"],
|
||||
|
|
@ -45,7 +41,7 @@ java_proto_library(
|
|||
java_grpc_library(
|
||||
name = "language_java_grpc",
|
||||
srcs = [":language_proto"],
|
||||
deps = [":language_java_proto"] + _JAVA_GRPC_DEPS,
|
||||
deps = [":language_java_proto"],
|
||||
)
|
||||
|
||||
java_gapic_library(
|
||||
|
|
@ -54,7 +50,7 @@ java_gapic_library(
|
|||
gapic_yaml = "language_gapic.yaml",
|
||||
service_yaml = "//google/cloud/language:language_v1.yaml",
|
||||
test_deps = [":language_java_grpc"],
|
||||
deps = [":language_java_proto"] + _JAVA_GRPC_DEPS,
|
||||
deps = [":language_java_proto"],
|
||||
)
|
||||
|
||||
java_gapic_test(
|
||||
|
|
@ -76,6 +72,60 @@ java_gapic_assembly_gradle_pkg(
|
|||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"moved_proto_library",
|
||||
"py_proto_library",
|
||||
"py_grpc_library",
|
||||
"py_gapic_library",
|
||||
"py_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
moved_proto_library(
|
||||
name = "language_moved_proto",
|
||||
srcs = [":language_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "language_py_proto",
|
||||
deps = [":language_moved_proto"],
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "language_py_grpc",
|
||||
srcs = [":language_moved_proto"],
|
||||
deps = [":language_py_proto"],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "language_py_gapic",
|
||||
src = ":language_proto_with_info",
|
||||
gapic_yaml = "language_gapic.yaml",
|
||||
service_yaml = "//google/cloud/language:language_v1.yaml",
|
||||
deps = [
|
||||
":language_py_proto",
|
||||
":language_py_grpc"
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_assembly_pkg(
|
||||
name = "language-v1-py",
|
||||
deps = [
|
||||
":language_py_gapic",
|
||||
":language_py_grpc",
|
||||
":language_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
|
|
|
|||
|
|
@ -78,6 +78,61 @@ java_gapic_assembly_gradle_pkg(
|
|||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"moved_proto_library",
|
||||
"py_proto_library",
|
||||
"py_grpc_library",
|
||||
"py_gapic_library",
|
||||
"py_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
moved_proto_library(
|
||||
name = "texttospeech_moved_proto",
|
||||
srcs = [":texttospeech_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "texttospeech_py_proto",
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
deps = [":texttospeech_moved_proto"],
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "texttospeech_py_grpc",
|
||||
srcs = [":texttospeech_moved_proto"],
|
||||
deps = [":texttospeech_py_proto"],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "texttospeech_py_gapic",
|
||||
src = ":texttospeech_proto_with_info",
|
||||
gapic_yaml = "texttospeech_gapic.yaml",
|
||||
package = "google.cloud.texttospeech.v1",
|
||||
service_yaml = "//google/cloud/texttospeech:tts_v1.yaml",
|
||||
deps = [
|
||||
":texttospeech_py_grpc",
|
||||
":texttospeech_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_assembly_pkg(
|
||||
name = "texttospeech-v1-py",
|
||||
deps = [
|
||||
":texttospeech_py_gapic",
|
||||
":texttospeech_py_grpc",
|
||||
":texttospeech_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
|
|
|
|||
|
|
@ -35,6 +35,65 @@ proto_library_with_info(
|
|||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"moved_proto_library",
|
||||
"py_proto_library",
|
||||
"py_grpc_library",
|
||||
"py_gapic_library",
|
||||
"py_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
moved_proto_library(
|
||||
name = "firestore_moved_proto",
|
||||
srcs = [":firestore_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/rpc:status_proto",
|
||||
"//google/type:latlng_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:struct_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
"@com_google_protobuf//:wrappers_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "firestore_py_proto",
|
||||
deps = [":firestore_moved_proto"],
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "firestore_py_grpc",
|
||||
srcs = [":firestore_moved_proto"],
|
||||
deps = [":firestore_py_proto"],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "firestore_py_gapic",
|
||||
src = ":firestore_proto_with_info",
|
||||
gapic_yaml = "firestore_gapic.yaml",
|
||||
service_yaml = "//google/firestore:firestore_v1beta1.yaml",
|
||||
deps = [
|
||||
":firestore_py_proto",
|
||||
":firestore_py_grpc"
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_assembly_pkg(
|
||||
name = "firestore-v1beta1-py",
|
||||
deps = [
|
||||
":firestore_py_gapic",
|
||||
":firestore_py_grpc",
|
||||
":firestore_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Java
|
||||
##############################################################################
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ language_settings:
|
|||
package_name: com.google.cloud.firestore.v1beta1
|
||||
python:
|
||||
package_name: google.cloud.firestore_v1beta1.gapic
|
||||
release_level: ALPHA
|
||||
go:
|
||||
package_name: cloud.google.com/go/firestore/apiv1beta1
|
||||
domain_layer_location: cloud.google.com/go/firestore
|
||||
|
|
|
|||
|
|
@ -100,6 +100,63 @@ java_gapic_assembly_gradle_pkg(
|
|||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"moved_proto_library",
|
||||
"py_proto_library",
|
||||
"py_grpc_library",
|
||||
"py_gapic_library",
|
||||
"py_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
moved_proto_library(
|
||||
name = "pubsub_moved_proto",
|
||||
srcs = [":pubsub_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"@com_google_protobuf//:duration_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:field_mask_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "pubsub_py_proto",
|
||||
deps = [":pubsub_moved_proto"],
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "pubsub_py_grpc",
|
||||
srcs = [":pubsub_moved_proto"],
|
||||
deps = [":pubsub_py_proto"],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "pubsub_py_gapic",
|
||||
src = ":pubsub_proto_with_info",
|
||||
gapic_yaml = "pubsub_gapic.yaml",
|
||||
service_yaml = "//google/pubsub:pubsub.yaml",
|
||||
deps = [
|
||||
":pubsub_py_proto",
|
||||
":pubsub_py_grpc"
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_assembly_pkg(
|
||||
name = "pubsub-v1-py",
|
||||
deps = [
|
||||
":pubsub_py_gapic",
|
||||
":pubsub_py_grpc",
|
||||
":pubsub_py_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ def switched_rules_by_language(
|
|||
php (bool): Enable PHP specific rules. False by default.
|
||||
nodejs (bool): Enable Node.js specific rules. False by default.
|
||||
ruby (bool): Enable Ruby specific rules. False by default.
|
||||
python (bool): Enable Python-specific rules. False by default. Not implemented yet.
|
||||
python (bool): Enable Python-specific rules. False by default.
|
||||
csharp (bool): Enable C# specific rules. False by default.
|
||||
rules_override (dict): Custom rule overrides (for advanced usage).
|
||||
"""
|
||||
|
|
@ -111,6 +111,10 @@ def switched_rules_by_language(
|
|||
gapic,
|
||||
"@com_google_api_codegen//rules_gapic:gapic.bzl",
|
||||
)
|
||||
rules["moved_proto_library"] = _switch(
|
||||
gapic,
|
||||
"@com_google_api_codegen//rules_gapic:gapic.bzl",
|
||||
)
|
||||
|
||||
#
|
||||
# Java
|
||||
|
|
@ -140,6 +144,26 @@ def switched_rules_by_language(
|
|||
"@com_google_api_codegen//rules_gapic/java:java_gapic_pkg.bzl",
|
||||
)
|
||||
|
||||
#
|
||||
# Python
|
||||
#
|
||||
rules["py_proto_library"] = _switch(
|
||||
python,
|
||||
"@com_github_grpc_grpc//bazel:python_rules.bzl",
|
||||
)
|
||||
rules["py_grpc_library"] = _switch(
|
||||
python and grpc,
|
||||
"@com_github_grpc_grpc//bazel:python_rules.bzl",
|
||||
)
|
||||
rules["py_gapic_library"] = _switch(
|
||||
python and grpc and gapic,
|
||||
"@com_google_api_codegen//rules_gapic/python:py_gapic.bzl",
|
||||
)
|
||||
rules["py_gapic_assembly_pkg"] = _switch(
|
||||
python and grpc and gapic,
|
||||
"@com_google_api_codegen//rules_gapic/python:py_gapic_pkg.bzl",
|
||||
)
|
||||
|
||||
#
|
||||
# Go
|
||||
#
|
||||
|
|
@ -164,14 +188,6 @@ def switched_rules_by_language(
|
|||
"@com_google_api_codegen//rules_gapic/go:go_gapic_pkg.bzl",
|
||||
)
|
||||
|
||||
#
|
||||
# Python rules are not yet supported in googleapis due to a lack of
|
||||
# standard python rules in bazel / grpc. This placeholder enables
|
||||
# other projects to provide their own macros.
|
||||
# Please see https://github.com/grpc/grpc/issues/19255
|
||||
#
|
||||
rules["py_proto_library"] = _switch(False)
|
||||
|
||||
#
|
||||
# C++
|
||||
#
|
||||
|
|
|
|||
Loading…
Reference in New Issue