Bri*_*ndy 21 release release-cycle release-management
我在线分发软件,并且总是想知道是否有更好的方法来更好地定义版本号.
让我们假设答案中有ABCD.什么时候增加每个组件?
你使用任何其他版本号技巧,如D mod 2 == 1意味着它只是一个内部发布?
您是否拥有自己版本号的测试版,或者您是否有每个版本号的测试版?
Gre*_*eld 29
我开始喜欢一些应用程序(例如Perforce)使用的Year.Release [.Build]约定.基本上它只是说你发布的那一年,以及那一年内的顺序.所以2008.1将是第一个版本,如果你在一个月或三个月之后发布另一个版本,它将会发布到2008.2.
这种方案的优点是没有隐含的"大小"的释放,你可以在这里争论一个特征是否足以保证主要版本增量.
可选的额外内容是标记内部版本号,但这往往仅用于内部目的(例如,添加到EXE/DLL,以便您可以检查文件并确保正确构建).
在我看来,几乎任何版本号方案都可以或多或少地保持良好的工作状态.我使用的系统使用版本号,例如11.50.UC3,其中U表示32位Unix,C3是次要修订(修订包)号; 其他字母用于其他平台类型.(我不推荐这个方案,但它有效.)
有一些黄金法则到目前为止尚未说明,但这些法则隐含在人们讨论过的内容中.
现在,在实践中,人们确实必须发布旧版本的修复程序,而新版本可用 - 请参阅GCC,例如:
因此,您必须仔细构建版本编号方案.
另一点我坚信:
使用SVN,您可以使用SVN版本号 - 但可能不会因为它变得太不可预测.
对于我使用的东西,版本号是一个纯粹的政治决定.
顺便说一句,我知道从版本1.00到9.53发布的软件,但后来改为2.80.这是一个严重的错误 - 由市场营销决定.当然,该软件的4.x版本已经过时,因此它没有立即引起混淆,但该软件的5.x版仍在使用和销售,并且修订版已经达到3.50.我非常担心当不可避免的冲突发生时,我的代码必须与5.x(旧样式)和5.x(新样式)一起工作.我想我必须希望他们能够在改变到5.x之前直到老5.x真的死了 - 但我并不乐观.我还使用人工版本号(例如9.60)来表示3.50代码,以便我可以进行合理的if VERSION > 900测试,而不必执行以下操作:if (VERSION >= 900 || (VERSION >= 280 && VERSION < 400),其中我代表版本9.00乘900.然后在版本3.00.xC3中引入了重大变化 - 我的方案未能检测到次要版本级别的变化...抱怨...发牢骚......
注意:Eric Raymond提供软件发布实践HOWTO,包括关于命名(编号)版本的(链接)部分.
我认为有两种方法可以回答这个问题,而且它们并非完全互补.
我认为,最重要的是找到适合您和您的客户的模型.我见过一些甚至版本都是公开发布的情况,奇数版本被认为是beta或dev版本.我见过一些忽略C和D的产品.
然后是Micrsoft的例子,其中对.Net Framework版本号的唯一合理解释是营销涉及.
| 归档时间: |
|
| 查看次数: |
10673 次 |
| 最近记录: |