-
Notifications
You must be signed in to change notification settings - Fork 5.2k
deps: Experiment — adopt canonical CEL - py_proto_library support via rules_python #30159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me know when ready for review. It looks like this is still pointing at a branch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
d9b38de to
f937507
Compare
Signed-off-by: Sergii Tkachenko <[email protected]>
Signed-off-by: Sergii Tkachenko <[email protected]>
Signed-off-by: Sergii Tkachenko <[email protected]>
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 <[email protected]>
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:]