# Updating the protos

Just run `make` and the generated protos will be updated.

If the protoc compiler is confused by the map type, you are probably
running version of protoc < v3.0. You can check with `protoc --version`. See
below for updating your protoc version.

# Installing protoc v3 compiler

Grab protoc-3.2.0-linux-x86_64.zip release from
https://github.com/google/protobuf/releases/tag/v3.2.0

Newer releases of protoc are not compatible with the current version of protobuf python package
installed in requirements.txt at the time of this writing.

Extract `bin/protoc` from the release and copy it into /usr/bin/protoc. Give it execute permissions.

Check the new version with `protoc --version`.
