0.0.1有效的semver?

时间:2016-07-07 18:21:51

标签: semantic-versioning

一位同事对模块的第一个版本进行了随意的争论。我们想知道0.0.1是否应该是初始版本。我认为0.1.0是正确的第一个版本,因为0.0.1意味着补丁的增量,而补丁意味着先前的版本。所以根据我的理解,必须有一个0.0.0。

我浏览了http://semver.org个文档,它们确实说0.1.0通常是初始版本,但是当主版本也为0时,我没有看到任何规则将次要编号设置为0。 / p>

有人知道0.1.0是最低版本是正式规则,还是仅仅是约定?

4 个答案:

答案 0 :(得分:10)

semver 2.0.0 specification并不排除它。 FAQ确实建议从0.1.0开始。

  

我应该如何处理0.y.z初始开发阶段的修订?

     

最简单的方法是以0.1.0开始初始开发版本,然后为每个后续版本增加次要版本。

答案 1 :(得分:3)

这里没有规则,约定很宽松。

当初始主要数字为零时,所有保证的是较高的数字来自较低的数字。所有语义版本控制都保证"这是一个错误修复"或者"旧的功能仍然有效"仅适用于版本1或更高版本。

虽然0.1.0的松散约定是最低版本号,但有些人认为它是与其他版本共享的第一个版本。语义版本控制的规范只是看到前导零并洗手。

答案 2 :(得分:1)

语义分类(语义)是关于“安全地推进项目”。 —从“文档简介”第二段的最后一行开始。

出于这个定义和目的,我们应该为每个发行版增加版本号(突出显示版本然后提交)。

从docs中获取(规则2):版本号(MAJOR,MINOR和PATCH是非负整数)。

如果您从0.0.0开始,则必须将MAJOR'0'表示仍在开发中,而可能会升至0.0.1或0.1.0。最好将MAJOR' 1'表示首次公开发布。

请记住规则,如果将“ MAJOR”(主要)增加,则必须将MINOR&PATCH重置为“ 0”。如果将“ MINOR”(凹凸),则必须将PATCH重置为“ 0”。这样可以防止您同时碰碰这三个。

要发布0.0.0,您必须在package.json中以0.-1.-1或0.0.-1开始(您不能通过规则2),以便在发布时(突出版本然后提交)您的版本号为0.-1.0(您无法通过规则2)或0.0.0;

semver的常见问题解答说:“最简单的方法是从0.1.0开始初始开发版本,然后为每个后续版本增加次要版本。”他们正在谈论实际发布;完成之后(凹凸版本然后提交)。之所以提及该信息,是因为您可能拥有一个编号为0.0.1的发行版,表示您已修复一些问题。

0.0.0 =初始开发版本(不存在)

0.0.1 =自(0.0.0 |从哪里开始)修复的错误

0.1.0 =自(0.0.0 |开始的地方)起添加的功能

答案 3 :(得分:0)

根据semver计算器(https://semver.npmjs.com/),它无法识别以0.0.x开头的版本。Semver Calculator Screenshot

相关问题