如何在多个存储库之间共享 Protocol Buffer .proto 文件

How do I share Protocol Buffer .proto files between multiple repositories

我们正在考虑使用 Protocol Buffers 在 python 和 node.js 服务之间进行通信,每个服务都位于自己的存储库中。

由于 .proto 文件必须可供两个 repos 访问,我们应该如何共享 .proto 文件?

我们目前正在考虑:

  1. 为我们所有的 .proto 文件创建一个 repo,并使其成为我们所有服务的 git 子树
  2. 为我们所有的 .proto 文件创建一个 repo,在推送时发布一个私有 python 模块和私有节点模块,并从各自的服务中获取模块
  3. 为所有 .proto 文件创建存储库,并将存储库指定为 pip / npm 包的目标

在存储库之间共享 .proto 文件的标准方法是什么?

这取决于你的开发过程。

A git 子树/子模块对于大多数用途来说似乎是一个明智的解决方案。如果你有更多的下游项目,发布一个现成的模块是有意义的,因为这样就不会每个项目都需要 protobuf 生成器。

我们在同样的情况下,使用了3个repos:服务器端用c++写的,客户端用actionscript 3写的,第三个是protobufs,两者都用了。对于一个大团队,大项目我觉得是个不错的选择。