什么语义版本说明当引入制动变化但是过去已经引入了主要版本?

时间:2017-09-21 09:22:47

标签: git semantic-versioning

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

[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是否有分歧?

1 个答案:

答案 0 :(得分:1)

进行更改时,必须增加主要版本。 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。