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

问题描述 投票:2回答:1

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

  • 什么是1.0.0和2.0.0之间的突破性变化,促使主要版本崩溃?
  • 使用semver时我是否需要担心这个或将来的变化会引起混淆?
  • 如果semver在一个版本下允许更改但在其他版本下不允许更改,会发生什么?
semantic-versioning
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.