Add canonical CEL support: dev.cel.expr (rules_python approach)#69
Closed
Add canonical CEL support: dev.cel.expr (rules_python approach)#69
Conversation
eda7b03 to
81cf344
Compare
Contributor
Author
|
At the moment this fails because google/cel-spec doesn't provide python proto libraries (see https://dev.azure.com/cncf/xds/_build/results?buildId=151440&view=results): Created google/cel-spec#318 to add the support. |
aaf69d1 to
7ad233b
Compare
7ad233b to
97ce451
Compare
97ce451 to
de823f8
Compare
Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
Signed-off-by: Sergii Tkachenko <sergiitk@google.com>
de823f8 to
4fd40d1
Compare
This was referenced Nov 13, 2023
Contributor
Author
htuch
pushed a commit
that referenced
this pull request
Nov 16, 2023
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.