什么用作初始版本?

时间:2010-09-16 16:22:13

标签: version-numbering

我通常使用1.0.0版开始我的项目。只要我有一些东西在一起,我就把它发布为1.0.0并继续使用1.1.0。

然而,这导致了我编写的大多数内容的可用但不完全特征完整版本1.0.0。然后我添加功能,并在1.6.0附近得到一个不错的版本。许多项目从版本0.1.0开始,这将与我的1.0.0一样可用。

你会建议做什么?从1.0.0或0.1.0开始?

最后一个数字仅适用于bugfix发布。您可以将1.0.0视为1.0,将0.1.0视为0.1,这对您来说更容易。

12 个答案:

答案 0 :(得分:165)

Semantic Versioning 2.0.0标准说:

  

最简单的事情就是开始你的初始开发版本   0.1.0然后为每个后续版本增加次要版本。

可以从0.3.0直接变为1.0.0。在0.23.0也是完全可以的。从0.4.0开始有点不可取,因为它表明之前已发布过版本。

另外,请注意0.y.z被放在一边以便快速迭代,因此初始开发(以及因此大量的重大更改)不会让您处于像142.6.0这样愚蠢的状态。而不是碰撞主要版本,在每次重大更改时碰撞次要版本,直到您发布1.0.0:

  

主要版本零(0.y.z)用于初始开发。任何事情都可能随时改变。公共API不应被视为稳定。

答案 1 :(得分:3)

版本号完全取决于您。做什么对有意义并保持一致。没有人说你必须从0开始,或0.0,或1.0,或1.1。

优秀的程序员实际上使用版本编号系统作为本地笑话。示例(维基百科):

  

从版本3开始,TeX使用了   特殊版本编号   系统,已进行更新   通过添加一个额外的数字表示   小数结束,这样   版本号渐近   接近π。这是一个反映   事实上TeX现在非常稳定,   只有很小的更新   预料。当前版本   TeX是3.1415926;它是最后更新的   在2008年3月

对于METAFONT:

  

Metafont有一个版本控制系统   类似于TeX,其中   数渐近逼近e   每次修订。

最后,不完整的版本号,但同样有趣的是,谷歌的首次公开募股(IPO)已向美国证券交易委员会提交,募集资金为2,718,281,828美元(注意e~2.718 281 828)。

我的观点是:不要觉得你需要跟随人群。要有创意和一致。

答案 2 :(得分:2)

我认为这里有不同的因素。必须考虑版本号的心理/营销影响(版本号经常增加=>更多$$$,人们不想购买0.99测试版等)。 “逻辑”版本号可以帮助您在庞大的团队中工作。

我喜欢linux版本的不稳定版本的奇数,甚至是稳定版本的数字。

答案 3 :(得分:1)

当我获得第一个可用但尚未完成功能的版本时,我通常会尝试判断功能完整版本的程度,例如,如果我的第一个可用功能是33%功能完成,我会将版本号设为0.3 .0或类似的。然后,当我向功能完全移动时,相应的版本会以类似的方式获得给定的数字。

但是,一旦你继续过去的功能,完整的版本控制需要改变

答案 4 :(得分:0)

通常,版本控制对程序员有一定的意义。增加主要数字可能表示阻止向后兼容的大变化。版本号中的其他数字可能表示较小的功能增强或错误修复。

如果你担心版本0.6.5有一个不完整的响铃,你可能想要在1.0版本下推销它。您的营销版本号不一定与您的内部版本号相匹配。例如,Windows 7的版本号为6.1。

我个人的偏好是从0.1.0开始,然后从那里开始。

答案 5 :(得分:0)

npm软件包选择版本号时,请注意package.json semver ranges中列出的依赖项在v1.0.0以下不起作用。也就是说,

"dependencies": {
    "my-package": "^0.5"
}

相当于

"dependencies": {
    "my-package": "0.5"
}

如果您希望能够使用semver范围,或者您想让其他人使用它们,您可能希望从1.0.0开始

答案 6 :(得分:0)

0.1.0是我的起点,然后从那里开始。这是我为Adrian Xploration改编的内容,尽管我早年非常零散,并使用1.0.0、0.0.1和其他一些语言。但我确实建议从0.1.0开始并从那里开始。

每个Semver,在a.b.c中为A保留a和c。您是第一个正式发行版和C。Bug修复和补丁。这是因为主要版本通常会破坏较旧的代码。补丁只是修复错误。这都是个人喜好,0.99.0并不意味着您必须达到1.0.0,依此类推。我已经看到一些一直达到0.218.42。

答案 7 :(得分:-1)

取决于该项目。对于简单的命令行工具,我通常以0.9 [.0]开始,因为我只考虑在它们接近完成时释放或打包它们(或者准备好进行beta测试。)更复杂的项目从0.1 [.0]开始有些人甚至从未看到1.0。我认为1.0是一个发布版本(或至少是一个本地测试的测试版或候选发布版),并相应地做出计划。

对于团队项目,无论谁放置第一个版本标签都可以决定:)。

答案 8 :(得分:-2)

版本号应该对您有意义Arrieta之前正确评论过。

也许可以遵循以下内容:第一个#是市长发布,第二个#是同一个市长发布,添加了一些功能,第三个#是相同的市长发布,具有相同的功能,但有固定的错误或添加少量(但足够重要)变化。

1.3.2 =>第一版,更多功能和一些错误修复。

但是,对于最终用户,有些用于最终版本的大数字。

例如: Corel 8,适用于8.0.0,8.0.1,8.2.2等。 Corel 9,9.0.0 ......等等。

主要是关于营销策略,例如:Corel X5而不是Corel 15.0.2。

我想说这取决于版本号是给你还是给客户。

答案 9 :(得分:-5)

从0.0.0开始,然后继续前进。

答案 10 :(得分:-11)

从1.1.1开始,然后从那里开始。

答案 11 :(得分:-12)

我的版本控制是由设置驱动的。我希望它能够替换旧版本,所以我会继续增加它对我有用的跳跃。

然而,有时版本控制是由客户驱动的,特别是如果您向公众发布代码。

如果是您的电话,请做最适合您的事情。我在1.0之前的版本遇到了一些问题所以我从那开始。