google-cloud-cpp icon indicating copy to clipboard operation
google-cloud-cpp copied to clipboard

Revert to `@com_google_protobuf` dependency name after `@bazel_tools` deprecation

Open diegomarquezp opened this issue 5 months ago • 1 comments

Introduced in #15362, we are using @com_google_protobuf as the repository name for the Protobuf dependency. This was a necessary workaround to support both bzlmod and traditional WORKSPACE-based builds.

The underlying issue is that the @bazel_tools repository, which is a "magic" repository built into Bazel, has an internal dependency on Protobuf using the name @com_google_protobuf. This reference cannot be overridden using repo_mapping in MODULE.bazel, forcing us to adopt the @com_google_protobuf name for consistency in our WORKSPACE setup.

The Bazel team has indicated that they plan to slowly deprecate @bazel_tools and are not planning to make improvements to it. Once @bazel_tools is deprecated and the repositories that rely on it have migrated, we should revert our Protobuf dependency to use the canonical @protobuf name, as used by bzlmod.

This change will simplify our build configuration and align our project with the broader Bazel ecosystem's conventions.

Reference:

diegomarquezp:google-cloud-cpp$ bazelisk query --google_default_credentials --noenable_bzlmod --enable_workspace 'somepath(//google/cloud/storage:google_cloud_cpp_storage_grpc, @com_google_protobuf//src/google/protobuf:arena)'
//google/cloud/storage:google_cloud_cpp_storage_grpc
@googleapis//google/storage/v2:storage_cc_proto
@bazel_tools//tools/proto:cc_toolchain
@com_google_protobuf//:cc_toolchain
@com_google_protobuf//src/google/protobuf:protobuf
@com_google_protobuf//src/google/protobuf:micro_string
@com_google_protobuf//src/google/protobuf:arena

diegomarquezp avatar Aug 15 '25 17:08 diegomarquezp

Also added issue in bazel

https://github.com/bazelbuild/bazel/issues/26774

diegomarquezp avatar Aug 15 '25 18:08 diegomarquezp