我通常从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对您来说更容易。
我通常从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对您来说更容易。
Answers:
在语义版本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.yz)用于初始开发。随时可能发生任何变化。公共API不应被认为是稳定的。
版本号完全由您决定。做对您有意义的事情并保持一致。没有人说您必须从0或0.0或1.0或1.1开始。
优秀的程序员实际上已经将版本编号系统用作本地笑话。范例(维基百科):
从版本3开始,TeX使用了特有的版本编号系统,其中通过在小数点末添加一个额外的数字来指示更新,因此版本号渐近地接近π。这反映了这样一个事实,即TeX现在非常稳定,并且预计只有很小的更新。TeX的当前版本是3.1415926;最后更新于2008年3月
对于METAFONT:
Metafont具有与TeX相似的版本控制系统,其中每个修订版本的数字渐近地接近e。
最后,不是一个确切的版本号,但同样有趣的是,Google的首次公开募股(IPO)已向SEC提交,筹集了2,718,281,828美元(注意,e〜2.718 281 828)。
我的观点是:不需要觉得需要跟随人群。具有创造力和一致性。
当我准备好第一个可用但没有功能完整的版本时,我通常会尝试判断它朝功能完整版本的方向走的距离,因此,例如,如果我的第一个可用功能是33%功能完整,则将版本号设置为0.3.0或类似。然后,当我朝着功能迈进时,完整的相应版本会以类似的方式获得给定的数字。
但是,一旦您继续使用以前的功能,就需要更改完整的版本控制
选择npm
软件包的版本号时,请注意,对于package.json
semver范围中列出的依赖项,在v1.0.0以下版本不起作用。那是,
"dependencies": {
"my-package": "^0.5"
}
相当于
"dependencies": {
"my-package": "0.5"
}
如果您希望能够使用semver范围,或者想让其他人使用它们,则可能要从1.0.0开始
^
意思是“与版本兼容”。更多细节在这里。简而言之,0.y.z
是指最初的开发,任何更改y
或z
向后不兼容。在您的示例中^0.5 := 0.5 := 0.5.x
,,因此它是一个范围。如果插入符范围不适用于该0.y.z
范围,则除了插入符范围外,还可以使用比较器,hypen,x和代字号范围。
版本号对您来说应该是有意义的,因为Arrieta之前已正确注释过。
可能遵循以下内容:第一#是市长版本,第二#是相同的市长版本,添加了一些功能,而第三#是相同的市长版本,具有相同的功能,但具有固定的错误或添加了很少(但足够重要)的更改。
1.3.2 => 1st Release,具有更多功能和一些错误。
但是,对于最终用户而言,有些用户习惯于大量使用最终版本。
例如:Corel 8,用于8.0.0、8.0.1、8.2.2等。Corel9,用于9.0.0 ...等。
而且主要是关于营销策略的,例如:Corel X5而不是Corel 15.0.2。
我会说这取决于版本号是给您还是给客户。