diff --git a/modules/grpc/1.76.0/MODULE.bazel b/modules/grpc/1.76.0/MODULE.bazel new file mode 100644 index 00000000000..60f216d6a86 --- /dev/null +++ b/modules/grpc/1.76.0/MODULE.bazel @@ -0,0 +1,97 @@ +# Copyright 2025 the gRPC authors. +# +# 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. + +module( + name = "grpc", + version = "1.76.0", + compatibility_level = 1, + repo_name = "com_github_grpc_grpc", +) + +# Regular dependencies +# ==================== + +bazel_dep(name = "abseil-cpp", version = "20250512.1", repo_name = "com_google_absl") +bazel_dep(name = "apple_support", version = "1.17.1", repo_name = "build_bazel_apple_support") +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "boringssl", version = "0.20241024.0") # mistmatched 20241211 +bazel_dep(name = "c-ares", version = "1.19.1", repo_name = "com_github_cares_cares") +bazel_dep(name = "envoy_api", version = "0.0.0-20250128-4de3c74") +bazel_dep(name = "googleapis", version = "0.0.0-20240819-fe8ba054a", repo_name = "com_google_googleapis") +bazel_dep(name = "googletest", version = "1.17.0", repo_name = "com_google_googletest") +bazel_dep(name = "opencensus-cpp", version = "0.0.0-20230502-50eb5de.bcr.2", repo_name = "io_opencensus_cpp") +bazel_dep(name = "openssl", version = "3.3.1.bcr.1") +bazel_dep(name = "opentelemetry-cpp", version = "1.19.0", repo_name = "io_opentelemetry_cpp") +bazel_dep(name = "platforms", version = "0.0.10") +bazel_dep(name = "protobuf", version = "31.1", repo_name = "com_google_protobuf") +bazel_dep(name = "protoc-gen-validate", version = "1.2.1.bcr.1", repo_name = "com_envoyproxy_protoc_gen_validate") # Not needed directly +bazel_dep(name = "re2", version = "2024-07-02", repo_name = "com_googlesource_code_re2") # mistmached 2022-04-01 +bazel_dep(name = "rules_apple", version = "3.16.0", repo_name = "build_bazel_rules_apple") +bazel_dep(name = "rules_cc", version = "0.0.17") +bazel_dep(name = "rules_proto", version = "7.0.2") +bazel_dep(name = "xds", version = "0.0.0-20240423-555b57e", repo_name = "com_github_cncf_xds") # mismatched 20231116 +bazel_dep(name = "zlib", version = "1.3.1.bcr.5") + +switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules") +switched_rules.use_languages( + cc = True, + grpc = True, + python = True, +) + +# Development dependencies +# ======================== + +bazel_dep(name = "fuzztest", version = "20241028.0", dev_dependency = True, repo_name = "com_google_fuzztest") # mistmached 2023-05-16 +bazel_dep(name = "google_benchmark", version = "1.9.0", dev_dependency = True, repo_name = "com_github_google_benchmark") +bazel_dep(name = "rules_shell", version = "0.4.0", dev_dependency = True) + +# Python dependencies +# =================== + +bazel_dep(name = "rules_python", version = "1.5.4") + +PYTHON_VERSIONS = [ + "3.9", + "3.10", + "3.11", + "3.12", + "3.13", + "3.14.0b2", +] + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") + +[ + python.toolchain( + is_default = python_version == PYTHON_VERSIONS[-1], + python_version = python_version, + ) + for python_version in PYTHON_VERSIONS +] + +pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") + +[ + pip.parse( + hub_name = "grpc_python_dependencies", + python_version = python_version, + requirements_lock = "//:requirements.bazel.lock", + ) + for python_version in PYTHON_VERSIONS +] + +use_repo(pip, "grpc_python_dependencies") + +bazel_dep(name = "cython", version = "3.0.11-1") diff --git a/modules/grpc/1.76.0/patches/adopt_bzlmod.patch b/modules/grpc/1.76.0/patches/adopt_bzlmod.patch new file mode 100644 index 00000000000..f6aeb18efe2 --- /dev/null +++ b/modules/grpc/1.76.0/patches/adopt_bzlmod.patch @@ -0,0 +1,33 @@ +diff --git a/bazel/cython_library.bzl b/bazel/cython_library.bzl +index dc2ef7a890..93e99962db 100644 +--- a/bazel/cython_library.bzl ++++ b/bazel/cython_library.bzl +@@ -72,7 +72,10 @@ def pyx_library(name, deps = [], py_deps = [], srcs = [], **kwargs): + native.cc_binary( + name = shared_object_name, + srcs = [stem + ".cpp"], +- deps = deps + ["@local_config_python//:python_headers"], ++ deps = deps + [ ++ "@rules_python//python/cc:current_py_cc_headers", ++ "@rules_python//python/cc:current_py_cc_libs", ++ ], + defines = defines, + linkshared = 1, + ) +diff --git a/bazel/python_rules.bzl b/bazel/python_rules.bzl +index 8a34b14988..7a131eda0c 100644 +--- a/bazel/python_rules.bzl ++++ b/bazel/python_rules.bzl +@@ -211,11 +211,7 @@ def _generate_pb2_grpc_src_impl(context): + arguments = [] + tools = [context.executable._protoc, context.executable._grpc_plugin] + out_dir = get_out_dir(protos, context) +- if out_dir.import_path: +- # is virtual imports +- out_path = get_include_directory(out_files[0]) +- else: +- out_path = out_dir.path ++ out_path = out_dir.path + arguments += get_plugin_args( + context.executable._grpc_plugin, + plugin_flags, diff --git a/modules/grpc/1.76.0/presubmit.yml b/modules/grpc/1.76.0/presubmit.yml new file mode 100644 index 00000000000..0ace007d783 --- /dev/null +++ b/modules/grpc/1.76.0/presubmit.yml @@ -0,0 +1,76 @@ +matrix: + platform: + - debian11 + - macos + - macos_arm64 + - ubuntu2004 + - ubuntu2204 + - ubuntu2404 + bazel: + - 7.x + - 8.x + +tasks: + verify_targets: + platform: ${{ platform }} + bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' + build_targets: + - "@grpc//:grpc" + - "@grpc//:grpc_unsecure" + - "@grpc//:grpc_opencensus_plugin" + - "@grpc//:grpc_security_base" + - "@grpc//:grpc++" + - "@grpc//:grpc++_unsecure" + - "@grpc//:grpc++_reflection" + - "@grpc//:grpc++_test" + - "@grpc//:grpcpp_admin" + - "@grpc//:grpcpp_channelz" + - "@grpc//:grpcpp_csds" + - "@grpc//:grpcpp_orca_service" + - "@grpc//examples/protos/..." + + verify_targets_with_openssl: + platform: ${{ platform }} + bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' + - '--define=@grpc//third_party:use_openssl=true' + build_targets: + - "@grpc//:grpc" + - "@grpc//:grpc_unsecure" + - "@grpc//:grpc_opencensus_plugin" + - "@grpc//:grpc_security_base" + - "@grpc//:grpc++" + - "@grpc//:grpc++_unsecure" + - "@grpc//:grpc++_reflection" + - "@grpc//:grpc++_test" + - "@grpc//:grpcpp_admin" + - "@grpc//:grpcpp_channelz" + - "@grpc//:grpcpp_csds" + - "@grpc//:grpcpp_orca_service" + - "@grpc//examples/protos/..." + + verify_targets_on_windows: + platform: "windows" + bazel: ${{ bazel }} + build_flags: + - '--cxxopt=/std:c++17' + - '--host_cxxopt=/std:c++17' + - '--define=protobuf_allow_msvc=true' + build_targets: + - "@grpc//:grpc" + - "@grpc//:grpc_unsecure" + - "@grpc//:grpc_opencensus_plugin" + - "@grpc//:grpc_security_base" + - "@grpc//:grpc++" + - "@grpc//:grpc++_unsecure" + - "@grpc//:grpc++_reflection" + - "@grpc//:grpc++_test" + - "@grpc//:grpcpp_admin" + - "@grpc//:grpcpp_channelz" + - "@grpc//:grpcpp_csds" + - "@grpc//:grpcpp_orca_service" diff --git a/modules/grpc/1.76.0/source.json b/modules/grpc/1.76.0/source.json new file mode 100644 index 00000000000..9c9ff26291e --- /dev/null +++ b/modules/grpc/1.76.0/source.json @@ -0,0 +1,9 @@ +{ + "integrity": "sha256-CvN7gAlTEwtHwHW1ZoPuYL3D7aPDf8YAQZP1tWl1ggQ=", + "strip_prefix": "grpc-1.76.0", + "url": "https://github.com/grpc/grpc/archive/refs/tags/v1.76.0.tar.gz", + "patch_strip": 1, + "patches": { + "adopt_bzlmod.patch": "sha256-d7z79/WSEiNTZiQ/A50HMbyqbZj3qIESa4H2n/yhlhA=" + } +} diff --git a/modules/grpc/metadata.json b/modules/grpc/metadata.json index 335df178265..bf6412c57d9 100644 --- a/modules/grpc/metadata.json +++ b/modules/grpc/metadata.json @@ -102,7 +102,8 @@ "1.73.1", "1.74.0-pre2", "1.74.0", - "1.74.1" + "1.74.1", + "1.76.0" ], "yanked_versions": {} }