Generating protocol buffers

BuildStream uses protobuf and gRPC for serialization and communication with artifact cache servers. This requires .proto files and Python code generated from the .proto files using protoc. All these files live in the src/buildstream/_protos directory. The generated files are included in the git repository to avoid depending on grpcio-tools for user installations.

Regenerating code

When .proto files are modified, the corresponding Python code needs to be regenerated. As a prerequisite for code generation you need to install grpcio-tools using pip or some other mechanism:

pip3 install --user grpcio-tools

To actually regenerate the code:

./setup.py build_grpc