Docker image with a set of golang generators for protobuf-based projects
Описание сервиса в .proto позволяет генерить и документацию и множество полезного кода. Используемые для этого генераторы развиваются и регулярно обновляют версии. Когда генераторы ставятся локально и в команде есть несколько разработчиков, может возникнуть ситуация, что у разных разработчиков установлены разные версии генераторов. И они генерят разный код (например, зашивая в него свою версию). В результате коммиты замусориваются (а могут и портиться) не связанными с .proto изменениями сгенерированного кода. Посчитав это проблемой, мы нашли 2 решения:
- Добавить версии генераторов в зависимости проекта
- Собрать генераторы в образ docker и всей командой его использовать
Проект gogens - вариант решения 2.
- protobuf
- natsrpc
- protoc-gen-doc
- mockgen
- protoc-gen-gohttp
- protoc-gen-validate
- protoc-gen-openapi
- gowrap
- esbuild
cd api
make
Result:
- api/API.md - markdown docs for .proto
- zgen/ - golang code ** service.pb.go ** service.pb.validate.go - API validator