summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2018-07-11 12:42:19 +0200
committerJürg Billeter <j@bitron.ch>2018-07-17 07:56:40 +0200
commitb585388ed579db0b980c16f6166ae5af8faa90ba (patch)
tree375ed592291d09b97dd26cc7bc8c847faba4adc6
parent1a2ee26ef5b5b83a38f94a8fe3667fbcf8fa0235 (diff)
downloadbuildstream-b585388ed579db0b980c16f6166ae5af8faa90ba.tar.gz
HACKING.rst: Add note about protocol buffers and code generation
-rw-r--r--HACKING.rst22
1 files changed, 22 insertions, 0 deletions
diff --git a/HACKING.rst b/HACKING.rst
index dd791bd24..5d3ec1834 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -409,6 +409,28 @@ regenerate them locally in order to build the docs.
command: build hello.bst
+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
+``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
+
+
Testing BuildStream
-------------------
BuildStream uses pytest for regression tests and testing out