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.
32af7d211b/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>
gRPC's client-side weighted round robin currently uses 'cpu_utilization' but the load balancing works with any utilization. Server applications that are not CPU bound can report an application specific utilization metric instead and balance the load better. This change introduces a new top-level field 'application_utilization' for this use.
Signed-off-by: Yousuk Seung <ysseung@google.com>
* orca: replace uint64 rps with double qps
Signed-off-by: Mark D. Roth <roth@google.com>
* update go genfiles
Signed-off-by: Mark D. Roth <roth@google.com>
* re-add comment
Signed-off-by: Mark D. Roth <roth@google.com>
* fix formatting
Signed-off-by: Mark D. Roth <roth@google.com>
* rename qps to rps_fractional
Signed-off-by: Mark D. Roth <roth@google.com>
Signed-off-by: Mark D. Roth <roth@google.com>
* duplicate udpa protos in xds tree
Signed-off-by: Mark D. Roth <roth@google.com>
* remove udpa refs from xds tree
Signed-off-by: Mark D. Roth <roth@google.com>
* update build rules and generate go protos
Signed-off-by: Mark D. Roth <roth@google.com>
* add deprecation comments all over the place
Signed-off-by: Mark D. Roth <roth@google.com>
This updates bazel itself, as well as the bazel rules, and golang. These
updates are mostly tied together since rule compatibility that far back
isn't solid. This brings this repo closer to what envoy itself actually
has.
Signed-off-by: Keith Smiley <keithbsmiley@gmail.com>
Moves the Matcher proto into the udpa repo along with a few dependencies: TypedExtensionConfig, StringMatcher and RegexMatcher.
Signed-off-by: Snow Pettersen <snowp@lyft.com>