我们刚刚开始研究可能最好被描述为公司范围的“开放”源代码框架的东西。我们的主要语言是 C#,我们使用 Jenkins 和 ProGet 来创建和共享 nuget 包。我们开始把所有东西(我的意思是所有东西。一个模块至少有三个存储库)放在它自己的 Git-repo 中。我们认为这是一个好主意,因为我们可以单独版本和发布所有内容,但如果您想对具有依赖项的多个存储库进行更改,结果会导致非常烦人的工作流程。
我开始环顾四周,似乎大多数项目都使用更加单一的方法,我认为这也可能会让我们在这里的生活更轻松。我不太确定的是,这种方法的版本控制是如何工作的。
CoreFx 存储库是我们正在努力实现的一个很好的例子。一个 repo 导致许多单独的包。当我在本地构建它时,所有包都有一个版本号,但是当我查看 nuget.org 上的可用包版本时,版本似乎是每个包的。例如 System.Diagnostics.DiagnosticsSource 版本为 4.5.1,但引用 System.Diagnostics.Debug 版本 4.3.0。
所以这正是我认为对我们来说是一个很好的解决方案。一个 repo,许多具有独立版本的结果包。
有谁知道这是如何通过 corefx 项目实现的,或者有任何其他建议,怎么做?