• Martin Atkins's avatar
    build: Centralize our protobuf compilation steps · ce96d82d
    Martin Atkins authored
    We have a few different .proto files in this repository that all need to
    get recompiled into .pb.go files each time we change them, but we were
    previously handling that with some scripts that just assumed that protoc
    and the relevant plugins were already installed on the system somewhere,
    at the right versions.
    
    In practice we've been constantly flopping between different versions of
    these tools due to folks having different versions installed in their
    development environments. In particular, the state of the .pb.go files
    in the prior commit wasn't reproducible by any single version of the tools
    because they've all slightly diverged from one another.
    
    In the interests of being more consistent here and avoiding accidental
    inconsistencies, we'll now centralize the protocol buffer compile steps
    all into a single tool that knows how to fetch and install the expected
    versions of the various tools we need and then run those tools with the
    right options to get a stable result.
    
    If we want to upgrade to either a newer protoc or a newer protoc-gen-go
    in future then we'll do that in a central location and update all of the
    .pb.go files at the same time, so that we're always consistently tracking
    the same version of protocol buffers everywhere.
    
    While doing this I attempted to keep as close as possible to the toolchain
    we'd most recently used, but since they were not consistent with each
    other they've now all changed which version numbers they record at minimum,
    and the planproto stub in particular now also has a slightly different
    descriptor serialization but is otherwise offering the same API.
    ce96d82d
Analyzing file…