【问题标题】:What semantical versioning says when there are braking changes to introduce but a major version was already introduced in the past?当要引入制动更改但过去已经引入了主要版本时,语义版本控制说明了什么?
【发布时间】:2018-03-02 13:57:15
【问题描述】:

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

[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,但 2.0 版已经存在。语义版本控制说要增加主要版本。但是,如果过去增加了主要版本怎么办?是时候出3.0版了吗? 3.0 和 2.0 有分歧吗?

【问题讨论】:

    标签: git semantic-versioning


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 2017-11-04
      • 2017-01-01
      • 1970-01-01
      • 2019-08-09
      相关资源
      最近更新 更多