diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml index 333642a3a586..763a31d7cfbd 100644 --- a/.github/workflows/lint-pr.yml +++ b/.github/workflows/lint-pr.yml @@ -11,6 +11,6 @@ jobs: main: runs-on: ubuntu-latest steps: - - uses: amannn/action-semantic-pull-request@v4.3.0 + - uses: amannn/action-semantic-pull-request@v4.4.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/Makefile b/Makefile index 0c598af97cde..1535c5bc15fe 100644 --- a/Makefile +++ b/Makefile @@ -395,7 +395,7 @@ devdoc-update: ### Protobuf ### ############################################################################### -protoVer=v0.6 +protoVer=v0.7 protoImageName=tendermintdev/sdk-proto-gen:$(protoVer) containerProtoGen=$(PROJECT_NAME)-proto-gen-$(protoVer) containerProtoGenAny=$(PROJECT_NAME)-proto-gen-any-$(protoVer) diff --git a/contrib/devtools/Dockerfile b/contrib/devtools/Dockerfile index f94cd50d8044..05bed5ac81bf 100644 --- a/contrib/devtools/Dockerfile +++ b/contrib/devtools/Dockerfile @@ -1,6 +1,6 @@ ## To test locally: # docker build --pull --rm -f "contrib/devtools/Dockerfile" -t cosmossdk-proto:latest "contrib/devtools" -# docker run -v $(pwd):/workspace --workdir /workspace cosmossdk-proto sh ./scripts/protocgen.sh +# docker run --rm -v $(pwd):/workspace --workdir /workspace cosmossdk-proto sh ./scripts/protocgen.sh FROM bufbuild/buf:1.1.0 as BUILDER @@ -17,15 +17,22 @@ ENV GOLANG_PROTOBUF_VERSION=1.28.0 \ GRPC_GATEWAY_VERSION=1.16.0 -RUN go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest && \ - go install google.golang.org/protobuf/cmd/protoc-gen-go@v${GOLANG_PROTOBUF_VERSION} && \ - go install github.com/gogo/protobuf/protoc-gen-gogo@v${GOGO_PROTOBUF_VERSION} && \ - go install github.com/gogo/protobuf/protoc-gen-gogofast@v${GOGO_PROTOBUF_VERSION} && \ - go install github.com/gogo/protobuf/protoc-gen-gogofaster@v${GOGO_PROTOBUF_VERSION} && \ - go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v${GRPC_GATEWAY_VERSION} && \ - go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger@v${GRPC_GATEWAY_VERSION} && \ - go install github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@latest +RUN go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest +RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v${GOLANG_PROTOBUF_VERSION} +RUN go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v${GRPC_GATEWAY_VERSION} \ + github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger@v${GRPC_GATEWAY_VERSION} +# install all gogo protobuf binaries +RUN git clone https://github.com/regen-network/protobuf.git; \ + cd protobuf; \ + go mod download; \ + make install + +# we need to use git clone because we use 'replace' directive in go.mod +# protoc-gen-gocosmos was moved to to in cosmos/gogoproto but pending a migration there. +RUN git clone https://github.com/regen-network/cosmos-proto.git; \ + cd cosmos-proto/protoc-gen-gocosmos; \ + go install . RUN npm install -g swagger-combine diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 62048e48ceaa..234b84ae1d86 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -1,36 +1,24 @@ #!/usr/bin/env bash #== Requirements == - # - ## make sure your `go env GOPATH` is in the `$PATH` - ## Install: - ## + latest buf (v1.0.0-rc11 or later) - ## + protobuf v3 - # - ## All protoc dependencies must be installed not in the module scope - ## currently we must use grpc-gateway v1 - # cd ~ - # go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - # go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.16.0 - # go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest - # go get github.com/regen-network/cosmos-proto@latest # doesn't work in install mode +# +## make sure your `go env GOPATH` is in the `$PATH` +## Install: +## + latest buf (v1.0.0-rc11 or later) +## + protobuf v3 +# +## All protoc dependencies must be installed not in the module scope +## currently we must use grpc-gateway v1 +# cd ~ +# go install google.golang.org/protobuf/cmd/protoc-gen-go@latest +# go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest +# go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.16.0 +# go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest +# go get github.com/regen-network/cosmos-proto@latest # doesn't work in install mode +# go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@v0.3.1 set -eo pipefail -protoc_install_gocosmos() { - echo "Installing protobuf gocosmos plugin" - # we should use go install, but regen-network/cosmos-proto contains - # replace directives. It must not contain directives that would cause - # it to be interpreted differently than if it were the main module. - # So the command below issues a warning and we are muting it for now. - # - # Installing plugins must be done outside of the module - (go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@v0.3.1 2> /dev/null) - } - - protoc_install_gocosmos - echo "Generating gogo proto code" cd proto proto_dirs=$(find ./cosmos -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq)