deps: Experiment — adopt canonical CEL - py_proto_library support via rules_python#30159
deps: Experiment — adopt canonical CEL - py_proto_library support via rules_python#30159sergiitk wants to merge 4 commits intoenvoyproxy:mainfrom
Conversation
|
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
api/bazel/repository_locations.bzl
Outdated
There was a problem hiding this comment.
Let me know when ready for review. It looks like this is still pointing at a branch.
There was a problem hiding this comment.
Yes - this is still a draft. I'll click "Ready for review" when it's ready.
dd46e8e to
d9b38de
Compare
|
@phlax, @htuch at some point it would be nice to repoint to the correct repo - https://github.com/cncf/xds - and change all the references to 40: f.path.startswith("external/com_github_cncf_udpa/xds"))
tools/protoxform/protoxform.bzl
27: path.short_path.startswith("../com_github_cncf_udpa") or
tools/protodoc/protodoc.bzl
23: path.short_path.startswith("../com_github_cncf_udpa")
api/bazel/repositories.bzl
29: name = "com_github_cncf_udpa",
api/bazel/external_proto_deps.bzl
25: # @com_github_cncf_udpa//xds/type/matcher/v3:pkg_go_proto
api/bazel/repository_locations.bzl
37: com_github_cncf_udpa = dict( |
DO NOT MERGE Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
d9b38de to
f937507
Compare
Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
com_github_cncf_udpa (cncf/xds)py_proto_library provided by @com_google_protobuf//:protobuf.bzl has been deprecated for a while now: This is provided for backwards compatibility only. Bazel 5.3 will introduce support for py_proto_library, which should be used instead. https://github.com/protocolbuffers/protobuf/blob/32af7d211b85f71920acdfa9b796db008f8c2a45/protobuf.bzl#L642-L644 However, native py_proto_library has never been provided, see bazelbuild/bazel#3935. Instead @rules_python//python:proto.bzl is recommended. I attempted switching to this library, but it's not compatible with @com_google_googleapis's py_proto_library targets, see #69. I found a hacky workaround by using cc_proto_library to generate python targets, but downstream integration into Envoy failed (envoyproxy/envoy#30159). This PR migrates py_proto_library implementation to to @com_github_grpc_grpc. This implementation is used by @com_google_googleapis's, and, more importantly, uses bazel aspects. Which decouples cncf/xds and Envoy's dependencies from concrete upstream py_proto_library implementations. This resulted in a significant code improvement of bazel/api_build_system.bzl: No more custom @com_google_googleapis dependency mapping needed via py_proto_library rules override. No more hardcoded dependencies _xds_py_proto_library - proto dependency tree is determined from proto_library definitions via Basel aspects. No more EXTERNAL_PROTO_PY_BAZEL_DEP_MAP dependency map needed - for the same reason. Similar work in Envoy: envoyproxy/envoy#30834. Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
DO NOT MERGE
This is an experiment at this moment.
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]