什么版本的语义版本控制版本?

时间:2017-06-03 00:11:58

标签: semantic-versioning

Semantic versioning存在于两个草稿中(截至本文撰写时,不包括beta版和候选版):1.0.0和2.0.0。显然,它本身就是版本。

  • 促使主要版本崩溃的1.0.0和2.0.0之间有什么突破性变化?
  • 使用semver时,我是否需要担心这个或将来的变化会引起混淆?
  • 如果semver在一个版本下允许更改但在其他版本下不允许更改,会发生什么情况?

1 个答案:

答案 0 :(得分:1)

这些都是很棒的问题!

  

促使主要版本崩溃的1.0.0和2.0.0之间有什么突破性的变化?

有多项更改涉及规范中语言的细微收紧以及常见问题解答的增加,这可能会导致某些SemVer解析器(打包和工作流工具)中的某些代码更改,这些都不会让人震惊。最大的变化是:

  • 添加#11指定版本优先级,包括预发布标记和排除构建元数据。
  • 添加build metadata tag,几乎可以保证解析器在大多数(如果不是全部)支持产品中断裂。
  • 从版本字符串中删除'v'。
  • 更改分区编号,使1.0.0#10与2.0.0#10无关,这肯定会将参考链接分解为默认的semver.org页面。
  

使用semver时,我是否需要担心这个或将来的变化会引起混淆?

没有标准方法可以确定MyCoolGizmo 1.2.0是否在SemVer 1.0.0,2.x.x或未来x.x.x规范下进行了版本控制。但是,你不能从版本字符串中告诉任何潜在的语义,合同或工作流,我们需要某种版本元/模式(WIP)。关于GitHub semver/semver issues tab的一些提案如果被采纳对SemVer社区中的许多人来说非常令人不安,但是不太可能被全部或部分采用。

我与维护者就SemVer的未来进行了一些电子邮件讨论,并且有理由期待一些计划正在进行中,以便在今年的某个时间记录一些前瞻性陈述。版本3.x.x可能就在某个角落,但此时此角落可能已经过去了几年。该标准相当稳定,我相信它可能仍然如此。

编辑:了解问题的核心,semver.org site维护了可以从产品文档中引用的规范的五个版本的“不可变”副本。我希望随着新版本候选/发布的发布,该列表将会增长。您应始终能够参考产品声称遵守的版本。

  

如果semver在一个版本下进行了更改而在其他版本下没有进行更改会发生什么?

任何新版本的SemVer都将相对于2.0.0。当然,相对于2.x.x的任何突破性变化相对于1.0.0都是突破,那么有什么区别呢?如果您担心要移除的功能,那么这显然是一个需要另一个主要版本冲突的重大变化。

如果您有任何其他问题,可以在此处提出问题或将其带到SemVer issues site on GitHub

相关问题