See release.md for the release process.
Check https://github.com/protocolbuffers/protobuf/releases regularly for new releases. A release
that can be used for Prototool must include protoc-VERSION-linux-x86_64.zip
and
protoc-VERSION-osx-x86_64.zip
, which small releases sometimes do not.
The following files need to be updated:
- All files in
docs
that contain the currentprotoc
version. As of this writing, this isdocs/README.md
,docs/faq.md
, anddocs/protoc.md
. internal/vars/vars.go
example/proto/prototool.yaml
Once these files are updated, run make generate
. Do not manually update
etc/config/example/prototool.yaml
as this will be automatically updated with make generate
.
See uber#417 for an example.
There are some issues running go get -u ./...
multiple times with Golang Modules as of writing
this documentation, so be careful when updating dependencies. Right now, the easiest way to make
sure dependencies are up to date is to run the corresponding Makefile target.
make updatedeps
This will do a complete update of the go.mod
, go.sum
, and bazel/deps.bzl
files. This should
be revisited in the future, however.
See uber#443 for an example.
To update the Docker image, edit the Dockerfile.
Note that for version changes, the versions are copied in four places: once for each layer in the Dockerfile (sharing these is harder than you think), once in etc/docker/testing/bin/test.sh, and once in docker.md.
Updates of protobuf
and grpc
must match the current versions for alpine:edge
for now. See
here and
here for
the current versions.
See uber#437 for an example.