diff --git a/Dockerfile b/Dockerfile index 521d7c40..c2c65278 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,18 +30,22 @@ RUN curl -sSL \ -o /usr/local/bin/protoc-gen-grpc-web && \ chmod +x /usr/local/bin/protoc-gen-grpc-web -ENV YARPC_VERSION=1.37.1 +ENV YARPC_VERSION=1.37.2 RUN git clone --depth 1 -b v${YARPC_VERSION} https://github.com/yarpc/yarpc-go.git /go/src/go.uber.org/yarpc && \ cd /go/src/go.uber.org/yarpc && \ GO111MODULE=on go mod init && \ GO111MODULE=on go install ./encoding/protobuf/protoc-gen-yarpc-go && \ mv /go/bin/protoc-gen-yarpc-go /usr/local/bin/ -ENV TWIRP_VERSION=5.5.2 -RUN git clone --depth 1 -b v${TWIRP_VERSION} https://github.com/twitchtv/twirp.git /go/src/github.com/twitchtv/twirp && \ - cd /go/src/github.com/twitchtv/twirp && \ - go install ./protoc-gen-twirp ./protoc-gen-twirp_python && \ - mv /go/bin/protoc-gen-twirp* /usr/local/bin/ +ENV TWIRP_VERSION=5.7.0 +RUN curl -sSL \ + https://github.com/twitchtv/twirp/releases/download/v${TWIRP_VERSION}/protoc-gen-twirp-Linux-x86_64 \ + -o /usr/local/bin/protoc-gen-twirp && \ + curl -sSL \ + https://github.com/twitchtv/twirp/releases/download/v${TWIRP_VERSION}/protoc-gen-twirp_python-Linux-x86_64 \ + -o /usr/local/bin/protoc-gen-twirp_python && \ + chmod +x /usr/local/bin/protoc-gen-twirp && \ + chmod +x /usr/local/bin/protoc-gen-twirp_python ENV PROTOBUF_VERSION=3.6.1 RUN mkdir -p /tmp/protoc && \ @@ -86,5 +90,5 @@ ENV GOGO_PROTOBUF_VERSION=1.2.1 \ GOLANG_PROTOBUF_VERSION=1.3.1 \ GRPC_GATEWAY_VERSION=1.8.5 \ GRPC_WEB_VERSION=1.0.4 \ - TWIRP_VERSION=5.5.2 \ - YARPC_VERSION=1.37.1 + TWIRP_VERSION=5.7.0 \ + YARPC_VERSION=1.37.2 diff --git a/docs/development.md b/docs/development.md index 0d369bec..e0d05c15 100644 --- a/docs/development.md +++ b/docs/development.md @@ -41,3 +41,5 @@ of `protoc`. Note that `etc/config/example/prototool.yaml` is automatically upda update `DefaultProtocVersion` in `internal/vars/vars.go` and you run `make generate`. See https://github.com/uber/prototool/pull/418 for an example of updating versions of dependencies. + +See https://github.com/uber/prototool/pull/437 for an example of updating versions for Docker. diff --git a/docs/docker.md b/docs/docker.md index 92bc1c3e..a57bc601 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -36,8 +36,8 @@ commonly-used, stable, maintained libraries. | [gogo/protobuf] | 1.2.1 | protoc-gen-gofast
protoc-gen-gogo
protoc-gen-gogofast
protoc-gen-gogofaster
protoc-gen-gogoslick | | [grpc-gateway] | 1.8.5 | protoc-gen-grpc-gateway
protoc-gen-swagger | | [grpc-web] | 1.0.4 | protoc-gen-grpc-web | -| [twirp] | 5.5.2 | protoc-gen-twirp
protoc-gen-twirp_python | -| [yarpc] | 1.37.1 | protoc-gen-yarpc-go | +| [twirp] | 5.7.0 | protoc-gen-twirp
protoc-gen-twirp_python | +| [yarpc] | 1.37.2 | protoc-gen-yarpc-go | The Well-Known Types are copied to `/usr/include`. The packages `bash`, `curl`, and `git` are also installed. @@ -59,6 +59,8 @@ Note that for version changes, the versions are copied in four places: once for Dockerfile (sharing these is harder than you think), once in [etc/docker/testing/bin/test.sh](../etc/docker/testing/bin/test.sh), and once in this documentation. +See https://github.com/uber/prototool/pull/437 for an example of updating versions. + Updates of `protobuf` and `grpc` must match the current versions for `alpine:edge` for now. See [here](https://pkgs.alpinelinux.org/packages?name=protobuf&branch=edge&repo=main&arch=x86_64) and [here](https://pkgs.alpinelinux.org/packages?name=grpc&branch=edge&repo=testing&arch=x86_64) for the current versions. Local development commands: diff --git a/etc/docker/testing/bin/test.sh b/etc/docker/testing/bin/test.sh index f56cf169..9f6299cc 100644 --- a/etc/docker/testing/bin/test.sh +++ b/etc/docker/testing/bin/test.sh @@ -63,8 +63,8 @@ check_env GRPC_VERSION 1.19.1 check_env GRPC_GATEWAY_VERSION 1.8.5 check_env GRPC_WEB_VERSION 1.0.4 check_env PROTOBUF_VERSION 3.6.1 -check_env TWIRP_VERSION 5.5.2 -check_env YARPC_VERSION 1.37.1 +check_env TWIRP_VERSION 5.7.0 +check_env YARPC_VERSION 1.37.2 check_env PROTOTOOL_PROTOC_BIN_PATH /usr/bin/protoc check_env PROTOTOOL_PROTOC_WKT_PATH /usr/include check_command_output "libprotoc 3.6.1" protoc --version