Update Protocol Specificationยถ

For developers who want to change the protobuf specification, one needs to first edit jina/proto/jina.proto and then use jina/proto/build-proto.sh to regenerate the python interfaces (i.e. jina/proto/jina_pb2.py and jina/proto/jina_pb2_grpc.py).

Take MacOS as an example,

  1. Download protoc-$VERSION-$PLATFORM.zip from the official Github site and decompress it.

  2. Copy the binary file and include to your system path:

    cp ~/Downloads/protoc-3.7.1-osx-x86_64/bin/protoc /usr/local/bin/
    
    cp -r ~/Downloads/protoc-3.7.1-osx-x86_64/include/* /usr/local/include/
    
  3. Install gRPC tools dependencies:

    brew install automake autoconf libtool
    
  4. Install gRPC and grpc_python_plugin from the source:

    git clone https://github.com/grpc/grpc.git
    git submodule update --init
    make grpc_python_plugin
    
  5. This will compile the grpc-python-plugin and build it to, e.g., ~/Documents/grpc/bins/opt/grpc_python_plugin

  6. Generate the python interfaces.

    cd jina/proto
    bash build-proto.sh ~/Documents/grpc/bins/opt/grpc_python_plugin