This directory contains a subset of Bazel's Build Event Protocol (BEP) and related protocol buffer definitions, vendored here to provide Go bindings for the jobstatus tool without requiring a complex dependency on the full Bazel source tree.
The following proto files are vendored here:
build_event_stream.proto: The main Build Event Protocol definition.command_line.proto: Representation of Bazel command lines.option_filters.proto: Used by command line representation.invocation_policy.proto: Used by command line representation.failure_details.proto: Structured failure information.action_cache.proto: Action cache statistics.package_load_metrics.proto: Metrics related to package loading.Directly depending on the @io_bazel module in a Bzlmod environment can introduce transitive dependency conflicts (e.g., rules_graalvm, rules_jvm_external) that are difficult to resolve in a Go-centric project like rsclient. Vendoring just the necessary protos allows us to maintain a stable, isolated build.
To update these protos from a local Bazel checkout, use the provided script:
# Can be run from any directory: ./rsclient/third_party/bazel/update_3p_protos.py --bazel-source=/path/to/bazel/source
By default, the script looks for Bazel at ../../../bazel.
The script performs the following:
.proto files.third_party/bazel/).BUILD.bazel file with appropriate Go proto rules.import statements.Go bindings are generated via the go_proto_library targets defined in BUILD.bazel. The generated code is mapped to the github.com/bazelbuild/rsclient/third_party/bazel/... import paths.