diff --git a/WORKSPACE b/WORKSPACE index d4859a32..d9fe61d0 100644 --- a/WORKSPACE +++ b/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 ############################################################################## diff --git a/google/bigtable/admin/v2/BUILD.bazel b/google/bigtable/admin/v2/BUILD.bazel index a8572898..bdb6bd53 100644 --- a/google/bigtable/admin/v2/BUILD.bazel +++ b/google/bigtable/admin/v2/BUILD.bazel @@ -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"], diff --git a/google/cloud/asset/v1beta1/BUILD.bazel b/google/cloud/asset/v1beta1/BUILD.bazel index e2e2a189..1d27199e 100644 --- a/google/cloud/asset/v1beta1/BUILD.bazel +++ b/google/cloud/asset/v1beta1/BUILD.bazel @@ -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"], diff --git a/google/cloud/dialogflow/v2/BUILD.bazel b/google/cloud/dialogflow/v2/BUILD.bazel index 3f35f7d5..e5bbc9da 100644 --- a/google/cloud/dialogflow/v2/BUILD.bazel +++ b/google/cloud/dialogflow/v2/BUILD.bazel @@ -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", diff --git a/google/cloud/language/v1/BUILD.bazel b/google/cloud/language/v1/BUILD.bazel index a703deb1..4f95da83 100644 --- a/google/cloud/language/v1/BUILD.bazel +++ b/google/cloud/language/v1/BUILD.bazel @@ -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 ############################################################################## diff --git a/google/cloud/texttospeech/v1/BUILD.bazel b/google/cloud/texttospeech/v1/BUILD.bazel index 75c75672..bcc22908 100644 --- a/google/cloud/texttospeech/v1/BUILD.bazel +++ b/google/cloud/texttospeech/v1/BUILD.bazel @@ -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 ############################################################################## diff --git a/google/firestore/v1beta1/BUILD.bazel b/google/firestore/v1beta1/BUILD.bazel index 3b7aec65..9edf69c0 100644 --- a/google/firestore/v1beta1/BUILD.bazel +++ b/google/firestore/v1beta1/BUILD.bazel @@ -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 ############################################################################## diff --git a/google/firestore/v1beta1/firestore_gapic.yaml b/google/firestore/v1beta1/firestore_gapic.yaml index 89b697e7..257e0e24 100644 --- a/google/firestore/v1beta1/firestore_gapic.yaml +++ b/google/firestore/v1beta1/firestore_gapic.yaml @@ -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 diff --git a/google/pubsub/v1/BUILD.bazel b/google/pubsub/v1/BUILD.bazel index b5128391..227327e2 100644 --- a/google/pubsub/v1/BUILD.bazel +++ b/google/pubsub/v1/BUILD.bazel @@ -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 ############################################################################## diff --git a/repository_rules.bzl b/repository_rules.bzl index ba40eeaf..675f8a24 100644 --- a/repository_rules.bzl +++ b/repository_rules.bzl @@ -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++ #