mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-03 11:45:18 +00:00
abci++ tooling: proto synchronization (#8065)
This PR implements a hack. It does effectively 2 things: 1. It checks in a set of protos, suffixed with `.intermediate` that allow the abci proto generation to proceed. 2. Adds a script / makefile to enable the generation. The script is pretty simple. It copies over the 'intermediate' files over to be the `.proto` files for the `abci/types.proto` file and the `types/types.proto` files, generates all the protos, and then reverts all of the changes made to the `*.proto` files and the `*.pb.go` files, except for the single abci file. If this is too ugly, I'm happy to tweak it, but my goal here is to have some working version of the protos that currently build the abci code so that we can coordinate changes to the code and not have them all sit in different branches that make breaking changes across each other. The end goal is to have the `.intermediate` files disappear completely, since they should be moving towards containing everything that the `.proto` files contain.
This commit is contained in:
31
scripts/abci-gen.sh
Executable file
31
scripts/abci-gen.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This file was added during development of ABCI++. This file is a script to allow
|
||||
# the intermediate proto files to be built while active development proceeds
|
||||
# on ABCI++.
|
||||
# This file should be removed when work on ABCI++ is complete.
|
||||
# For more information, see https://github.com/tendermint/tendermint/issues/8066.
|
||||
set -euo pipefail
|
||||
|
||||
cp ./proto/tendermint/abci/types.proto.intermediate ./proto/tendermint/abci/types.proto
|
||||
cp ./proto/tendermint/types/types.proto.intermediate ./proto/tendermint/types/types.proto
|
||||
|
||||
MODNAME="$(go list -m)"
|
||||
find ./proto/tendermint -name '*.proto' -not -path "./proto/tendermint/abci/types.proto" \
|
||||
-exec sh ./scripts/protopackage.sh {} "$MODNAME" ';'
|
||||
|
||||
sh ./scripts/protopackage.sh ./proto/tendermint/abci/types.proto $MODNAME "abci/types"
|
||||
|
||||
make proto-gen
|
||||
|
||||
mv ./proto/tendermint/abci/types.pb.go ./abci/types
|
||||
|
||||
echo "proto files have been compiled"
|
||||
|
||||
echo "checking out copied files"
|
||||
|
||||
find proto/tendermint/ -name '*.proto' -not -path "*.intermediate"\
|
||||
| xargs -I {} git checkout {}
|
||||
|
||||
find proto/tendermint/ -name '*.pb.go' \
|
||||
| xargs -I {} git checkout {}
|
||||
Reference in New Issue
Block a user