Nuget软件包的版本控制/更新策略

时间:2018-11-03 06:54:09

标签: nuget nuget-package semantic-versioning nuget-update

也许有人对以下情况有个好主意:

我有 预发行版开发包,例如:packagename.1.2.0.1000-dev.nupkg 和 发布软件包,例如packagename.1.2.0.1.nupkg

我的想法是:如果开发人员软件包在nuget更新步骤中启用了Pre-Release选项,则从更高数量的dev软件包开始将始终允许为开发人员获取dev软件包。这很好。 然后,稍后我想将项目更新为最新发行版本。但是,似乎没有选择更新到版本号低于dev / pre-release软件包的最新发行版的选择吗?另外-Safe选项在这里似乎不起作用。

我也无法保持内部版本号同步,因为它们是不同的内部版本。如果相反,那么发行版的内部版本号会更高,如果我进行常规的nuget更新,甚至包括预发行版的软件包,它也永远不会更新到最新的dev软件包。

这里有什么主意吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

任何公开可用的软件包都是技术/英文术语的“发布软件包”。但是软件行业已经使该语言混为一谈。因此,让我们来谈谈稳定版本(无预释放标签)和不稳定版本(预释放标签)。

发布者的历史应该是这样的:

1.0.0 // First **stable release**
1.0.1-alpha // First **unstable release** Candidate bug fix.
1.0.1-beta  // 1.0.1-alpha with a tweak to the code.
1.0.1 // Second **stable release**

如果发布者遵循该模式,则最终用户客户端可以安全地获取稳定版本的错误修复,而开发人员还可以根据自己的判断来获取不稳定的预发行版本。

您还可以输入以下内容:

1.0.0 // First **stable release**
1.0.1-a.dev.1 // Next CI build after 1.0.0
1.0.1-a.dev.2 // Etc...
1.0.1-alpha // Relabeled 1.0.1-a.dev.2.
1.0.1-beta  // Relabeled 1.0.1-alpha, wider audience than -alpha.
1.0.1 // Second **stable release**

为内部开发/测试,公共预发行版和公共稳定发行版提供单独的提要是一个好习惯。