multi: move server proto files to their own directory

Protobuf does not allow naming conflicts for files within the same
process, because all proto messages register themselves in a global
registry.

This is problematic because the server's itests import the client's
looprpc package to make rpc queries to the loopd client, thus importing
duplicate common.proto and server.proto from the client's looprc package
(since they're both in there as well).

This change moves the server's proto files into their own directory so
that they are not imported when we want to use the client's files. We
cannot change the package name for the server, because that would be
a breaking change (the package name is included in URIS). Fortunately,
we have the go_package option which allows us to place generated files
in a different location.
This commit is contained in:
carla 2021-12-13 13:56:40 +02:00
parent f01f440715
commit dad103530f
No known key found for this signature in database
GPG key ID: 4CA7FE54A6213C91
19 changed files with 603 additions and 493 deletions

View file

@ -75,6 +75,7 @@ install:
rpc:
@$(call print, "Compiling protos.")
cd ./swapserverrpc; ./gen_protos_docker.sh
cd ./looprpc; ./gen_protos_docker.sh
rpc-check: rpc
@ -85,6 +86,9 @@ rpc-js-compile:
@$(call print, "Compiling JSON/WASM stubs.")
GOOS=js GOARCH=wasm $(GOBUILD) $(PKG)/looprpc
rpc-format:
cd ./looprpc; find . -name "*.proto" | xargs clang-format --style=file -i
cd ./swapserverrpc; find . -name "*.proto" | xargs clang-format --style=file -i
clean:
@$(call print, "Cleaning up.")