Skip to content

Commit 3157d97

Browse files
authored
chore: Update proto build to use buf and the BSR (#285)
* Update proto build to use buf and BSR * Build cork protos to v2 package to match go file path * Switch cosmos/gogoproto dependency * Delete vendored google/gogo proto depedencies in favor of BSR * Switch from vendored regen cosmos_proto dep to BSR
1 parent 25bf250 commit 3157d97

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+275
-5272
lines changed

Makefile

+6-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ BUILDDIR ?= $(CURDIR)/build
99
TEST_DOCKER_REPO=jackzampolin/sommtest
1010
HTTPS_GIT := https://github.com/peggyjv/sommelier.git
1111
DOCKER := $(shell which docker)
12-
DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace bufbuild/buf
12+
DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace bufbuild/buf:1.29.0
1313

1414
export GO111MODULE = on
1515

@@ -212,23 +212,25 @@ test-docker-push: test-docker
212212
### Protobuf ###
213213
###############################################################################
214214

215+
PROTO_BUILD_IMAGE=ghcr.io/cosmos/proto-builder:0.8
216+
215217
proto-all: proto-format proto-lint proto-gen
216218

217219
proto-gen:
218220
@echo "Generating Protobuf files"
219-
$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen.sh
221+
$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(PROTO_BUILD_IMAGE) sh ./scripts/protocgen.sh
220222

221223
proto-format:
222224
@echo "Formatting Protobuf files"
223225
$(DOCKER) run --rm -v $(CURDIR):/workspace \
224-
--workdir /workspace tendermintdev/docker-build-proto \
226+
--workdir /workspace $PROTO_BUILD_IMAGE \
225227
find ./ -not -path "./third_party/*" -name *.proto -exec .clang-format -i {} \;
226228

227229
proto-swagger-gen:
228230
@./scripts/protoc-swagger-gen.sh
229231

230232
proto-lint:
231-
@$(DOCKER_BUF) check lint --error-format=json
233+
@$(DOCKER_BUF) lint --error-format=json
232234

233235
proto-check-breaking:
234236
@$(DOCKER_BUF) check breaking --against-input $(HTTPS_GIT)#branch=main

buf.work.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
version: v1
2+
directories:
3+
- proto
4+
- third_party/proto

docs/core/proto-docs.md

-4,119
This file was deleted.

docs/protodoc-markdown.tmpl

-105
This file was deleted.

go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ go 1.19
55
require (
66
cosmossdk.io/errors v1.0.0-beta.7
77
cosmossdk.io/math v1.0.0-rc.0
8+
github.com/cosmos/cosmos-proto v1.0.0-alpha8
89
github.com/cosmos/cosmos-sdk v0.46.14
910
github.com/cosmos/go-bip39 v1.0.0
11+
github.com/cosmos/gogoproto v1.4.8
1012
github.com/cosmos/ibc-go/v6 v6.2.0
1113
github.com/ethereum/go-ethereum v1.10.22
1214
github.com/gogo/protobuf v1.3.3
@@ -63,7 +65,6 @@ require (
6365
github.com/confio/ics23/go v0.9.0 // indirect
6466
github.com/containerd/continuity v0.3.0 // indirect
6567
github.com/cosmos/btcutil v1.0.5 // indirect
66-
github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect
6768
github.com/cosmos/gorocksdb v1.2.0 // indirect
6869
github.com/cosmos/iavl v0.19.6 // indirect
6970
github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,8 @@ github.com/cosmos/cosmos-sdk v0.46.14/go.mod h1:9MRixWsgoJ2UmVsCRRePtENFPP3cM+gT
247247
github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
248248
github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY=
249249
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
250+
github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ4=
251+
github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY=
250252
github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y=
251253
github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw=
252254
github.com/cosmos/iavl v0.19.6 h1:XY78yEeNPrEYyNCKlqr9chrwoeSDJ0bV2VjocTk//OU=

proto/buf.gen.doc.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
version: v1
2+
plugins:
3+
- name: doc
4+
out: ../docs/core/
5+
opt: ../docs/protodoc-markdown.tmpl,proto-docs.md

proto/buf.gen.gogo.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
version: v1
2+
plugins:
3+
- name: gocosmos
4+
out: ..
5+
opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types
6+
- name: grpc-gateway
7+
out: ..
8+
opt: logtostderr=true,allow_colon_final_segments=true

proto/buf.lock

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by buf. DO NOT EDIT.
2+
version: v1
3+
deps:
4+
- remote: buf.build
5+
owner: cosmos
6+
repository: cosmos-proto
7+
commit: 1935555c206d4afb9e94615dfd0fad31
8+
digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377
9+
- remote: buf.build
10+
owner: cosmos
11+
repository: gogo-proto
12+
commit: 88ef6483f90f478fb938c37dde52ece3
13+
digest: shake256:89c45df2aa11e0cff97b0d695436713db3d993d76792e9f8dc1ae90e6ab9a9bec55503d48ceedd6b86069ab07d3041b32001b2bfe0227fa725dd515ff381e5ba
14+
- remote: buf.build
15+
owner: googleapis
16+
repository: googleapis
17+
commit: 7e6f6e774e29406da95bd61cdcdbc8bc
18+
digest: shake256:fe43dd2265ea0c07d76bd925eeba612667cf4c948d2ce53d6e367e1b4b3cb5fa69a51e6acb1a6a50d32f894f054a35e6c0406f6808a483f2752e10c866ffbf73

proto/buf.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: v1
2+
name: buf.build/sommelier/sommelier
3+
deps:
4+
- buf.build/cosmos/cosmos-proto
5+
- buf.build/cosmos/gogo-proto
6+
- buf.build/googleapis/googleapis
7+
breaking:
8+
use:
9+
- FILE
10+

proto/cork/v2/cork.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22
package cork.v2;
33

4-
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types";
4+
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types/v2";
55

66
message Cork {
77
// call body containing the ABI encoded bytes to send to the contract

proto/cork/v2/genesis.proto

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ package cork.v2;
44
import "cork/v2/cork.proto";
55
import "gogoproto/gogo.proto";
66

7-
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types";
8-
7+
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types/v2";
98

109
// GenesisState - all cork state that must be provided at genesis
1110
message GenesisState {

proto/cork/v2/proposal.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package cork.v2;
33

44
import "cork/v2/cork.proto";
55

6-
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types";
6+
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types/v2";
77

88
message AddManagedCellarIDsProposal {
99
string title = 1;

proto/cork/v2/query.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import "google/api/annotations.proto";
66
import "cork/v2/genesis.proto";
77
import "cork/v2/cork.proto";
88

9-
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types";
9+
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types/v2";
1010

1111
// Query defines the gRPC query service for the cork module.
1212
service Query {

proto/cork/v2/tx.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package cork.v2;
33

44
import "cork/v2/cork.proto";
55

6-
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types";
6+
option go_package = "github.com/peggyjv/sommelier/v7/x/cork/types/v2";
77

88
// MsgService defines the msgs that the cork module handles
99
service Msg {

scripts/README.md

-7
This file was deleted.

scripts/protocgen.sh

+8-34
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,19 @@
22

33
set -eo pipefail
44

5-
protoc_gen_gocosmos() {
6-
if ! grep "github.com/gogo/protobuf => github.com/regen-network/protobuf" go.mod &>/dev/null ; then
7-
echo -e "\tPlease run this command from somewhere inside the sommelier folder."
8-
return 1
9-
fi
10-
11-
go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@latest 2>/dev/null
12-
}
13-
14-
echo "verifying protoc gocosmos"
15-
protoc_gen_gocosmos
5+
ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
166

7+
cd $ROOT/proto
178
echo "generating proto and gRPC gateway files..."
9+
buf generate --template buf.gen.gogo.yaml
10+
cd ..
1811

19-
proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq)
20-
for dir in $proto_dirs; do
21-
buf protoc \
22-
-I "proto" \
23-
-I "third_party/proto" \
24-
--gocosmos_out=plugins=interfacetype+grpc,\
25-
Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types:. \
26-
--grpc-gateway_out=logtostderr=true,allow_colon_final_segments=true:. \
27-
$(find "${dir}" -maxdepth 1 -name '*.proto')
28-
29-
done
12+
# move proto files to the right places
13+
xpath=$(head -n 1 go.mod | sed 's/^module //')
14+
cp -r $xpath/* ./
3015

31-
echo "generating proto docs..."
32-
# command to generate docs using protoc-gen-doc
33-
buf protoc \
34-
-I "proto" \
35-
-I "third_party/proto" \
36-
--doc_out=./docs/core \
37-
--doc_opt=./docs/protodoc-markdown.tmpl,proto-docs.md \
38-
$(find "$(pwd)/proto" -maxdepth 5 -name '*.proto')
16+
echo "cleaning up..."
3917
go mod tidy
40-
41-
echo "(re)moving proto files.."
42-
# move proto files to the right places
43-
cp -r github.com/peggyjv/sommelier/* ./
4418
rm -rf github.com
4519

4620
echo "done"

third_party/proto/buf.lock

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by buf. DO NOT EDIT.
2+
version: v1
3+
deps:
4+
- remote: buf.build
5+
owner: cosmos
6+
repository: cosmos-proto
7+
commit: 1935555c206d4afb9e94615dfd0fad31
8+
digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377
9+
- remote: buf.build
10+
owner: cosmos
11+
repository: gogo-proto
12+
commit: 88ef6483f90f478fb938c37dde52ece3
13+
digest: shake256:89c45df2aa11e0cff97b0d695436713db3d993d76792e9f8dc1ae90e6ab9a9bec55503d48ceedd6b86069ab07d3041b32001b2bfe0227fa725dd515ff381e5ba
14+
- remote: buf.build
15+
owner: googleapis
16+
repository: googleapis
17+
commit: 7e6f6e774e29406da95bd61cdcdbc8bc
18+
digest: shake256:fe43dd2265ea0c07d76bd925eeba612667cf4c948d2ce53d6e367e1b4b3cb5fa69a51e6acb1a6a50d32f894f054a35e6c0406f6808a483f2752e10c866ffbf73
+7-12
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
build:
2-
roots:
3-
- proto
4-
- third_party/proto
5-
excludes:
6-
- third_party/proto/google/protobuf
1+
version: v1
2+
deps:
3+
- buf.build/cosmos/cosmos-proto
4+
- buf.build/cosmos/gogo-proto
5+
- buf.build/googleapis/googleapis
76
lint:
87
use:
98
- DEFAULT
@@ -16,15 +15,11 @@ lint:
1615
- PACKAGE_VERSION_SUFFIX
1716
- RPC_REQUEST_STANDARD_NAME
1817
ignore:
19-
- tendermint
20-
- gogoproto
21-
- cosmos_proto
22-
- google
18+
- tendermint/
19+
- cosmos_proto/
2320
breaking:
2421
use:
2522
- FILE
2623
ignore:
2724
- tendermint
28-
- gogoproto
2925
- cosmos_proto
30-
- google

third_party/proto/cosmos_proto/cosmos.proto

-16
This file was deleted.

0 commit comments

Comments
 (0)