From 543d0eedf0baa5087dc7ea9f1c6ed82f6271e9cc Mon Sep 17 00:00:00 2001 From: Ilya Kapitonau Date: Thu, 21 Mar 2024 19:06:36 +0400 Subject: [PATCH] Update protobuf generation infrastructure --- Makefile | 45 +++++--------- buf.work.yaml | 3 + go.mod | 8 +-- go.sum | 15 +++-- proto/buf.gen.gogo.yaml | 8 +++ proto/buf.gen.swagger.yaml | 5 ++ proto/buf.lock | 33 +++++++++++ proto/buf.yaml | 23 ++++++++ .../v1beta1}/types.proto | 15 +++-- scripts/protoc-swagger-gen.sh | 23 ++++++++ scripts/protocgen.sh | 58 ++++++++++--------- 11 files changed, 163 insertions(+), 73 deletions(-) create mode 100644 buf.work.yaml create mode 100644 proto/buf.gen.gogo.yaml create mode 100644 proto/buf.gen.swagger.yaml create mode 100644 proto/buf.lock create mode 100644 proto/buf.yaml rename proto/secret/registration/{v1beta1/remote_attestation => remote_attestation/v1beta1}/types.proto (70%) create mode 100755 scripts/protoc-swagger-gen.sh diff --git a/Makefile b/Makefile index 3e693a2ab..65b3f3b04 100644 --- a/Makefile +++ b/Makefile @@ -565,45 +565,30 @@ aesm-image: docker build -f deployment/dockerfiles/aesm.Dockerfile -t enigmampc/aesm . ############################################################################### -### Swagger & Protobuf ### +### Protobuf ### ############################################################################### -.PHONY: update-swagger-openapi-docs statik statik-install proto-swagger-openapi-gen +protoVer=0.14.0 +protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer) +protoImage=$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(protoImageName) -statik-install: - @echo "Installing statik..." - @go install github.com/rakyll/statik@v0.1.6 - -statik: - statik -src=client/docs/static/ -dest=client/docs -f -m - -proto-swagger-openapi-gen: - cp go.mod /tmp/go.mod.bak - cp go.sum /tmp/go.sum.bak - @./scripts/protoc-swagger-openapi-gen.sh - cp /tmp/go.mod.bak go.mod - cp /tmp/go.sum.bak go.sum - -# Example `CHAIN_VERSION=v1.4.0 make update-swagger-openapi-docs` -update-swagger-openapi-docs: statik-install proto-swagger-openapi-gen statik - -protoVer=v0.2 - -proto-all: proto-lint proto-gen proto-swagger-openapi-gen +proto-all: proto-format proto-gen proto-swagger-gen proto-gen: - cp go.mod /tmp/go.mod.bak - cp go.sum /tmp/go.sum.bak @echo "Generating Protobuf files" - $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen:$(protoVer) sh ./scripts/protocgen.sh - cp /tmp/go.mod.bak go.mod - cp /tmp/go.sum.bak go.sum - go mod tidy + @$(protoImage) sh ./scripts/protocgen.sh + +proto-swagger-gen: + @echo "Generating Protobuf Swagger" + @$(protoImage) sh ./scripts/protoc-swagger-gen.sh + +proto-format: + @$(protoImage) find ./proto -name "*.proto" -exec clang-format -i {} \; proto-lint: - @$(DOCKER_BUF) lint --error-format=json + @$(protoImage) buf lint --error-format=json -.PHONY: proto-all proto-gen proto-format proto-lint proto-check-breaking +.PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint .PHONY: check-hw check-hw: build-linux diff --git a/buf.work.yaml b/buf.work.yaml new file mode 100644 index 000000000..7a18eb025 --- /dev/null +++ b/buf.work.yaml @@ -0,0 +1,3 @@ +version: v1 +directories: + - proto \ No newline at end of file diff --git a/go.mod b/go.mod index e32e7ebd7..b6deb6d43 100644 --- a/go.mod +++ b/go.mod @@ -5,16 +5,15 @@ go 1.21 replace ( github.com/cometbft/cometbft => github.com/scrtlabs/tendermint v0.38.2 github.com/cosmos/cosmos-sdk => github.com/scrtlabs/cosmos-sdk v0.46.0-beta2.0.20240319223406-51e8978ed8d6 - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 ) require ( github.com/cometbft/cometbft v0.38.5 github.com/cosmos/cosmos-sdk v0.50.4 github.com/cosmos/go-bip39 v1.0.0 + github.com/cosmos/gogoproto v1.4.11 github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.1 github.com/cosmos/ibc-go/v8 v8.1.0 - github.com/gogo/protobuf v1.3.3 github.com/golang/protobuf v1.5.3 github.com/google/gofuzz v1.2.0 github.com/gorilla/mux v1.8.1 @@ -22,7 +21,6 @@ require ( github.com/miscreant/miscreant.go v0.0.0-20200214223636-26d376326b75 github.com/pkg/errors v0.9.1 github.com/rakyll/statik v0.1.7 - github.com/regen-network/cosmos-proto v0.3.1 github.com/rs/zerolog v1.32.0 // indirect github.com/spf13/cast v1.6.0 github.com/spf13/cobra v1.8.0 @@ -55,8 +53,9 @@ require ( cosmossdk.io/x/tx v0.13.0 github.com/cometbft/cometbft-db v0.9.1 github.com/cosmos/cosmos-db v1.0.0 - github.com/cosmos/gogoproto v1.4.11 + github.com/cosmos/cosmos-proto v1.0.0-beta.4 github.com/cosmos/rosetta v0.50.4 + github.com/gogo/protobuf v1.3.2 ) require ( @@ -93,7 +92,6 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.4 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect diff --git a/go.sum b/go.sum index e98dc1c5e..a5c0a3a0a 100644 --- a/go.sum +++ b/go.sum @@ -496,6 +496,12 @@ github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFG github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= @@ -724,6 +730,8 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= @@ -918,10 +926,6 @@ github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Ung github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= -github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1351,8 +1355,10 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1508,7 +1514,6 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= diff --git a/proto/buf.gen.gogo.yaml b/proto/buf.gen.gogo.yaml new file mode 100644 index 000000000..e57beeed6 --- /dev/null +++ b/proto/buf.gen.gogo.yaml @@ -0,0 +1,8 @@ +version: v1beta1 +plugins: + - name: gocosmos + out: .. + opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types,Mcosmos/orm/v1/orm.proto=cosmossdk.io/orm + - name: grpc-gateway + out: .. + opt: logtostderr=true,allow_colon_final_segments=true diff --git a/proto/buf.gen.swagger.yaml b/proto/buf.gen.swagger.yaml new file mode 100644 index 000000000..d0f7535b1 --- /dev/null +++ b/proto/buf.gen.swagger.yaml @@ -0,0 +1,5 @@ +version: v1 +plugins: + - name: swagger + out: ../tmp-swagger-gen + opt: logtostderr=true,fqn_for_swagger_name=true,simple_operation_ids=true diff --git a/proto/buf.lock b/proto/buf.lock new file mode 100644 index 000000000..6cad7a7c8 --- /dev/null +++ b/proto/buf.lock @@ -0,0 +1,33 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: cosmos + repository: cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 + digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377 + - remote: buf.build + owner: cosmos + repository: cosmos-sdk + commit: 05419252bcc241ea8023acf1ed4cadc5 + digest: shake256:1e54a48c19a8b59d35e0a7efa76402939f515f2d8005df099856f24c37c20a52800308f025abb8cffcd014d437b49707388aaca4865d9d063d8f25d5d4eb77d5 + - remote: buf.build + owner: cosmos + repository: gogo-proto + commit: 88ef6483f90f478fb938c37dde52ece3 + digest: shake256:89c45df2aa11e0cff97b0d695436713db3d993d76792e9f8dc1ae90e6ab9a9bec55503d48ceedd6b86069ab07d3041b32001b2bfe0227fa725dd515ff381e5ba + - remote: buf.build + owner: googleapis + repository: googleapis + commit: ee48893a270147348e3edc6c1a03de0e + digest: shake256:a35b0576a2b55dad72747e786af05c03539c2b96be236c9de39fe10d551931ac252eb68445c0cef6bbd27fa20e8c26eee5b8a9fe9c2fde6f63a03e18f8cf980d + - remote: buf.build + owner: protocolbuffers + repository: wellknowntypes + commit: 657250e6a39648cbb169d079a60bd9ba + digest: shake256:00de25001b8dd2e29d85fc4bcc3ede7aed886d76d67f5e0f7a9b320b90f871d3eb73507d50818d823a0512f3f8db77a11c043685528403e31ff3fef18323a9fb + - remote: buf.build + owner: tendermint + repository: tendermint + commit: 33ed361a90514289beabf3189e1d7665 + digest: shake256:038267e06294714fd883610626554b04a127b576b4e253befb4206cb72d5d3c1eeccacd4b9ec8e3fb891f7c14e1cb0f770c077d2989638995b0a61c85afedb1d diff --git a/proto/buf.yaml b/proto/buf.yaml new file mode 100644 index 000000000..48e9b4037 --- /dev/null +++ b/proto/buf.yaml @@ -0,0 +1,23 @@ +# This module represents buf.build/cosmos/cosmos-sdk +version: v1 +deps: + - buf.build/cosmos/cosmos-proto + - buf.build/cosmos/cosmos-sdk + - buf.build/cosmos/gogo-proto + - buf.build/googleapis/googleapis +breaking: + use: + - FILE +lint: + use: + - DEFAULT + - COMMENTS + - FILE_LOWER_SNAKE_CASE + except: + - UNARY_RPC + - COMMENT_FIELD + - SERVICE_SUFFIX + - PACKAGE_VERSION_SUFFIX + - RPC_REQUEST_STANDARD_NAME + ignore: + - tendermint diff --git a/proto/secret/registration/v1beta1/remote_attestation/types.proto b/proto/secret/registration/remote_attestation/v1beta1/types.proto similarity index 70% rename from proto/secret/registration/v1beta1/remote_attestation/types.proto rename to proto/secret/registration/remote_attestation/v1beta1/types.proto index 8a35196ff..070409510 100644 --- a/proto/secret/registration/v1beta1/remote_attestation/types.proto +++ b/proto/secret/registration/remote_attestation/v1beta1/types.proto @@ -8,13 +8,18 @@ option (gogoproto.goproto_getters_all) = false; option (gogoproto.equal_all) = true; message QuoteReport { - string id = 1 [(gogoproto.customname) = "ID"]; + string id = 1 [ (gogoproto.customname) = "ID" ]; string timestamp = 2; uint64 version = 3; - string isv_enclave_quote_status = 4 [(gogoproto.jsontag) = "isvEnclaveQuoteStatus"]; - string platform_info_blob = 5 [(gogoproto.jsontag) = "platformInfoBlob"]; - string isv_enclave_quote_body = 6 [(gogoproto.jsontag) = "isvEnclaveQuoteBody"]; - repeated string advisory_ids = 7 [(gogoproto.customname) = "AdvisoryIDs", (gogoproto.jsontag) = "advisoryIDs"]; + string isv_enclave_quote_status = 4 + [ (gogoproto.jsontag) = "isvEnclaveQuoteStatus" ]; + string platform_info_blob = 5 [ (gogoproto.jsontag) = "platformInfoBlob" ]; + string isv_enclave_quote_body = 6 + [ (gogoproto.jsontag) = "isvEnclaveQuoteBody" ]; + repeated string advisory_ids = 7 [ + (gogoproto.customname) = "AdvisoryIDs", + (gogoproto.jsontag) = "advisoryIDs" + ]; } message QuoteReportBody { diff --git a/scripts/protoc-swagger-gen.sh b/scripts/protoc-swagger-gen.sh new file mode 100755 index 000000000..73ce312d7 --- /dev/null +++ b/scripts/protoc-swagger-gen.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -eo pipefail + +mkdir -p ./tmp-swagger-gen +cd proto +proto_dirs=$(find ./secret -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $proto_dirs; do + # generate swagger files (filter query files) + query_file=$(find "${dir}" -maxdepth 1 \( -name 'query.proto' -o -name 'service.proto' \)) + if [[ ! -z "$query_file" ]]; then + buf generate --template buf.gen.swagger.yaml $query_file + fi +done + +cd .. +# combine swagger files +# uses nodejs package `swagger-combine`. +# all the individual swagger files need to be configured in `config.json` for merging +swagger-combine ./client/docs/config.json -o ./client/docs/swagger-ui/swagger.yaml -f yaml --continueOnConflictingPaths true --includeDefinitions true + +# clean swagger files +rm -rf ./tmp-swagger-gen diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 891f43c7a..9808a073a 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -1,40 +1,42 @@ #!/usr/bin/env bash -set -eo pipefail +# How to run manually: +# docker build --pull --rm -f "contrib/devtools/Dockerfile" -t cosmossdk-proto:latest "contrib/devtools" +# docker run --rm -v $(pwd):/workspace --workdir /workspace cosmossdk-proto sh ./scripts/protocgen.sh -protoc_gen_gocosmos() { - if ! grep "github.com/gogo/protobuf => github.com/regen-network/protobuf" go.mod &>/dev/null ; then - echo -e "\tPlease run this command from somewhere inside the cosmos-sdk folder." - return 1 - fi +echo "Formatting protobuf files" +# find ./ -name "*.proto" -exec clang-format -i {} \; - go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@latest -} +set -e -protoc_gen_gocosmos - -proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +echo "Generating gogo proto code" +cd proto +proto_dirs=$(find ./secret -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) for dir in $proto_dirs; do - buf protoc \ - -I "proto" \ - -I "third_party/proto" \ - --gocosmos_out=plugins=interfacetype+grpc,\ -Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types:. \ - --grpc-gateway_out=logtostderr=true:. \ - $(find "${dir}" -maxdepth 1 -name '*.proto') - + for file in $(find "${dir}" -maxdepth 1 -name '*.proto'); do + # this regex checks if a proto file has its go_package set to cosmossdk.io/api/... + # gogo proto files SHOULD ONLY be generated if this is false + # we don't want gogo proto to run for proto files which are natively built for google.golang.org/protobuf + # if grep -q "option go_package" "$file" && grep -H -o -c 'option go_package.*cosmossdk.io/api' "$file" | grep -q ':0$'; then + buf generate --template buf.gen.gogo.yaml $file + # fi + done done -# command to generate docs using protoc-gen-doc -#buf protoc \ -#-I "proto" \ -#-I "third_party/proto" \ -#--doc_out=./docs/proto \ -#--doc_opt=./docs/proto/protodoc-markdown.tmpl,proto-docs.md \ -#$(find "$(pwd)/proto" -maxdepth 5 -name '*.proto') \ -#$(find "$(pwd)/third_party/proto/cosmos" -maxdepth 4 -name '*.proto') \ -#$(find "$(pwd)/third_party/proto/ibc" -maxdepth 4 -name '*.proto') +cd .. + +# generate tests proto code +# (cd testutil/testdata; buf generate) +# (cd baseapp/testutil; buf generate) +# (cd tests/integration/tx/internal; make codegen) # move proto files to the right places cp -r github.com/scrtlabs/SecretNetwork/* ./ rm -rf github.com +# cp -r github.com/cosmos/cosmos-sdk/* ./ +# cp -r cosmossdk.io/** ./ +# rm -rf github.com cosmossdk.io + +go mod tidy + +# ./scripts/protocgen-pulsar.sh