2016-08-09 2 views
7

Мы рассматриваем возможность использования Protocol Buffers для связи между python & службой node.js, каждый из которых живет в своих собственных репозиториях.Как обмен файлами протоколов .proto между несколькими репозиториями

Поскольку файлы .proto должны быть доступны для обоих репозиториев, как мы должны делиться файлами .proto?

Сейчас мы рассматриваем:

  1. Создание репо для всех наших .proto файлов, и делает его GIT поддерево всех наших услуг
  2. Создание репо для всех наших .proto файлов, издательское как частный модуль python и модуль частного узла при нажатии и требующие модулей от соответствующих служб.
  3. Создание репо для всех наших файлов .proto и указание репозитория как адресата пакета pip/npm

Каков стандартный способ обмена .proto файлами между репозиториями?

ответ

6

Это зависит от степени вашего развития.

Поддерево или подмодуль git представляется разумным решением для большинства целей. Если бы у вас было больше нисходящих проектов, публикация готового модуля имела бы смысл, так как тогда генератор protobuf не понадобился бы для каждого проекта.

+1

Это то, к чему мы сейчас склоняемся. Еще жаль, что для этого не было лучшего документального передового опыта. Похоже на довольно распространенный случай использования. – Swaraj

+0

Поддерживает ли каждый файл proto в своем собственном репозитории, а затем включает в себя необходимый прото-репозиторий или хранит их все в одном репозитории и включает все прото-файлы, даже если они вам не нужны в данной службе ? – Vizualni

0

Мы, в той же ситуации, использовали 3 репозитория: серверная сторона была написана на C++, клиентская сторона в ActionScript 3, а protobufs была в третьем и использовалась как одна из них. Для большой команды и большого проекта я думаю, что это был хороший выбор.

+0

Как вы на самом деле «использовали» репо, держащее протобуфы? – Swaraj

+0

Как и любое другое репо - внесите изменения и зафиксируйте их. Затем, например, на стороне клиента, проект был скомпилирован с помощью ant-скриптов, которые сначала транслируют .proto-файлы в классы actionscript и после этого компилируют весь проект. –

Смежные вопросы