什么语义版本说明当引入重大变化时,但过去已经引入了一个主要版本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么语义版本说明当引入重大变化时,但过去已经引入了一个主要版本?相关的知识,希望对你有一定的参考价值。

我创建了一个带语义版本的软件。

[1.0.0]<--[1.0.1]

在某些时候,我需要介绍一些重大变化。我决定添加分支2.0并维护1.0。

[1.0.0]<--[1.0.1]<--[2.0.0]<--[2.0.1]

而且发展仍在继续。

                   /-[2.0.0]<--[2.0.1]<--[2.0.2]
                   |
[1.0.0]<--[1.0.1]<--[1.0.2]

现在我需要在1.0中引入新功能,所以我决定启动分支1.1。

                   /-[2.0.0]<--[2.0.1]<--[2.0.2]
                   |
                   |         /-[1.1.0]<--[1.1.1]<--[1.1.2]
                   |         |
[1.0.0]<--[1.0.1]<--[1.0.2]<--[1.0.3]

现在,...现在我需要在版本1.1中引入BC,但verision 2.0已经存在。语义版本控制表示增加主要版本。但是,如果主要版本在过去增加了怎么办?是版本3.0的时间? 3.0和2.0有分歧吗?

答案

进行更改时,必须增加主要版本。 SemVer spec中没有任何内容要求增量正好为1.如果你有一套BC必须应用于维护叉,而不是产品线的头部,你可能实际上有两个产品,应该只是使用自己的版本轨道创建一个新的。规范不要求3.x.x与2.x.x和1.x.x相关,但是不能保持谱系是不寻常的。

对于产品叉(分支),您也可以独立于另一个分支对每个分支进行版本控制,但是您不能发布多个Prod.x.y.z,因此您基本上会发布两个产品;也许是Prod.B1.x.y.z和Prod.B2.x.y.z.

以上是关于什么语义版本说明当引入重大变化时,但过去已经引入了一个主要版本?的主要内容,如果未能解决你的问题,请参考以下文章

semver 2.0.0 的重大变化是啥

语义版本控制在啥版本下进行版本化?

你知道从 detox@12 到 detox@13 的重大变化吗?

npm包使用语义化版本号

SemVer:新功能可以被认为是重大变化吗?

70年:自然语言处理的重大变革[ChatGPT的视角]