我应该如何/何时更新版本号?

Posted

技术标签:

【中文标题】我应该如何/何时更新版本号?【英文标题】:How/When should I update the version number? 【发布时间】:2020-01-16 08:47:21 【问题描述】:

所以为了更多的上下文,我使用这个版本编号系统

版本顺序:MAJOR.MINOR.PATCH

MAJOR:主要部分表示 API 中的损坏 MINOR:次要部分表示“外部可见”的变化 PATCH:补丁段表示错误修复

我在github 上有一个项目。所以这是我的问题。

什么时候更新我的版本号?

上传新更新时是否会更新它 我是否在完成添加/更改某些代码后更新它

如何增加每次更改?

我是否会增加每个更改然后上传该版本号 即使我做了一些更改,当我上传新更新时,我是否说只增加 1。 假设我在上传时做了 10 个补丁,我只增加 1(基本上是说有 至少 1 次更改)或全部 10 次。因此,如果我在 1.0.0 并进行了 10 次更改,我会在更新的最终版本发布 1.0.1 还是 1.0.10

我要重置版本号吗?

例如,在我增加 Minor/Major 后,我是否将 Patch 重置为 0 我只是从不重置版本号

【问题讨论】:

【参考方案1】:

什么时候更新我的版本号?

何时适合发布版本完全由您决定,但您应该对此保持一致。如果您的项目有路线图,请考虑将多个相关功能分组为一个里程碑,并在完成这些功能后提升您的次要版本。使用每个新功能只增加次要版本也是有效的。

最重要的规则是您不要在不影响主要版本的情况下对公共 API 进行重大更改。第二个最重要的规则是在不增加一些版本号的情况下不要引入任何更改。请参阅https://semver.org/ 上的常见问题解答

如果您只是修复错误或进行细微调整,请升级补丁版本。

如何增加每次更改?

这取决于您的工作流程,以及您决定如何区分版本。通常,每次只增加 1 是有意义的,但您可以在发布公共构建之前经历多个私有构建。这取决于你。

请注意,如果您要构建托管在 npm 或 crates.io 之类的库或项目,则需要在每次更新时更改版本。了解适用于您所使用的任何语言的与 semver 相关的工具。

请注意,语义版本控制确实支持各种标签来识别项目的测试/beta/alpha 版本,请参阅规则 9 和 10。

我要重置版本号吗?

是的,您应该在升级次要版本时重置补丁号,在升级主要版本时您应该重置补丁号和次要号。否则,随着项目的进展,您最终会得到大量的版本号。有关如何将优先级分配给版本号的信息,请参阅 semver 规则 11。

【讨论】:

以上是关于我应该如何/何时更新版本号?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 git CLI 获取最新版本

C++ 自动更新到新版本

过时的实现如何优雅地处理新版本的 OpenType 字体?

如何设计APP版本号?

SPListItem.UpdateOverwriteVersion()真的不会创建新版本吗?

兼容 capella 1.4.0 的 M2DOC 版本何时可用?