diff --git a/Makefile b/Makefile index 79ec85f..f9ddcef 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +# Protobuf generation (tool versions are documented in README.md). +# Install the pinned plugins before running: make install-generate-tools. generate: rm -rf proto mkdir -p proto @@ -9,6 +11,12 @@ generate: --openapiv2_out=./cmd/evening_detective_server --openapiv2_opt allow_merge=true,merge_file_name=main \ ./api/main.proto +install-generate-tools: + go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.11 + go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.6.2 + go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@v2.30.0 + go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@v2.30.0 + run: go run ./cmd/evening_detective_server diff --git a/README.md b/README.md index ea8ee9a..c16a563 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,15 @@ cp .env.example .env mkdir migrations ``` +Для генерации protobuf нужен `protoc 36.0` и плагины тех же версий, что +проверены в этом репозитории: `protoc-gen-go v1.36.11`, +`protoc-gen-go-grpc v1.6.2`, `protoc-gen-grpc-gateway v2.30.0` и +`protoc-gen-openapiv2 v2.30.0`. Установить плагины можно командой +`make install-generate-tools`; каталог `$(go env GOPATH)/bin` должен быть в `PATH`. +После установки запуск `make generate` удаляет и пересоздаёт `proto/` и +обновляет `cmd/evening_detective_server/main.swagger.json`. Ручное редактирование +сгенерированных файлов не требуется. + Запуск ```shell