【发布时间】:2019-04-29 13:33:49
【问题描述】:
一些背景:我正在一个团队工作,该团队生产 6 个不同的 NuGet 包,它们直接、有时间接地相互依赖。简单地说,我们可能遇到像p0 < p1 < p2 这样的情况,其中包p0 依赖于p1,而p1 又依赖于p2。我们正在尝试关注Semantic Versioning 来获取这些软件包,但不太确定当p1 或p2 发生变化时如何处理p0 的版本。
下面是一些具体的例子:
-
p1进行了重大更改(例如0.0.0→1.0.0)。我们想要发布一个依赖于1.0.0的p0版本。这应该是p0的主要版本还是次要版本? -
p1做了一个小改动 (0.0.0→0.1.0)。这是否应该为p0带来次要版本/补丁版本?
更重要的是,
对于依赖版本更改应如何影响包版本更改是否有任何标准/共识?
【问题讨论】:
-
如果所有的包都相互依赖,为什么不把它们都放到一个包中呢?将它们全部作为单独的库进行维护是什么情况?
-
将逻辑解耦到单独的库中有很多原因:1)您可以独立使用它们(例如,如果有些是 .NET Standard 1.3,有些是 .NET Standard 2.0,这很有用),2)底层逻辑清晰分离。
标签: c# nuget semantic-versioning