Semantic versioning存在两个草稿(截至本文撰写时,不包括beta版和候选版):1.0.0和2.0.0。显然,它本身就是版本化的。
这些都是很棒的问题!
什么是1.0.0和2.0.0之间的突破性变化,促使主要版本崩溃?
有一些变化涉及到规范中语言的细微收紧以及常见问题解答的增加,这可能会促使一些SemVer解析器(包装和工作流工具)中的一些代码更改,这些都不是非常震动。最大的变化是:
使用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。