reclient icon indicating copy to clipboard operation
reclient copied to clipboard

Add Build Event Service (BES) support

Open magreenblatt opened this issue 7 months ago • 5 comments

The Build Event Protocol (BEP) allows third-party programs to gain insight into a Bazel invocation. It includes information about build and test results, build progress, the build configuration and much more. The Build Event Service (BES) Protocol is a generic gRPC service for publishing BEP events.

Cloud-based RBE systems intended for use with Bazel builds often use BES reporting to track progress and resource utilization associated with a particular build. Lack of BES support can be a blocker for reclient use with these systems.

magreenblatt avatar Apr 17 '25 16:04 magreenblatt

To clarify, are you asking about BES support for non-Bazel tools?

fangism avatar Apr 17 '25 22:04 fangism

For example: BES support when using ninja + reclient as part of a Chromium build. All communication with the cloud-based RBE is via reclient, so that seems (to me) the logical place for BES support to exist.

A counter-argument might be if reproxy doesn't have sufficient state information (but reproxystatus suggests that it might).

magreenblatt avatar Apr 17 '25 22:04 magreenblatt

Ping @ola-rozenfeld who makes mention of adding BEP support at https://blog.engflow.com/2024/02/20/how-to-build-chromium-with-reclient/#build-status-what-is-happening

magreenblatt avatar Apr 17 '25 22:04 magreenblatt

I started working on this last weekend while troubleshooting BuildBuddy, and had a successful test with reproxy today. It's based on Ola's work though, so I wouldn't want to submit any patches yet

https://garden.tplant.com.au/Cloud/Building-Chromium

bootstrap.zip reproxy.zip

pl4nty avatar Apr 18 '25 13:04 pl4nty

I'd love to see this upstreamed, so that I can use reclient with BuildBuddy to observe build events for any build wrapped by reclient <3

torarnv avatar Jun 22 '25 11:06 torarnv