Skip to content

Latest commit

 

History

History
56 lines (37 loc) · 2.13 KB

maintenance.md

File metadata and controls

56 lines (37 loc) · 2.13 KB

Maintenance

Back to README.md

Releasing a new version

See release.md for the release process.

Updating the default version of protoc

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 current protoc version. As of this writing, this is docs/README.md, docs/faq.md, and docs/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.

Updating dependencies

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.

Updating Docker image dependencies

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.