你推荐什么版本编号方案?(What version numbering scheme do you

2019-06-27 13:34发布

我的问题是,该版本命名方案应使用什么类型的项目。

很常见的是major.minor.fix,但即使这可能导致4号(即火狐2.0.0.16)。 一些有一个模型,奇数表示开发人员的版本和偶数稳定版本。 和补充各种可以进入组合,像-dev3,-rc1,SP2等。

存在的理由更喜欢一个方案比另一个,并应不同类型的项目(即开源与闭源)有不同的版本命名方案?

Answer 1:

这有两个很好的答案(加了不少个人喜好的,看到宗教战争小物件的评论)

对于上市申请,标准Major.Minor.Revision.Build效果最好IMO -大众用户可以轻松地告诉他们有计划的什么版本,并在一定程度上能走多远过时的版本。

对于内部应用中,用户从来没有要求的应用,部署由IT处理,用户将被调用帮助台,我发现Year.Month.Day.Build在很多情况下更好地工作。 此版本号可以因此被解码,以提供帮助台则公众的版本号方案更多有用的信息。

但是在一天结束时,我会做一个recomendation高于一切- 使用一个系统,你可以保持一致 。 如果有,你可以设置/脚本编译器自动使用每次的系统, 请使用

可能发生的最糟糕的事情是你释放的二进制文件相同的版本号为以前的 - 我最近一直在处理自动化的网络错误报告(别人的应用程序),并得出结论,即Year.Month.Day。构建在核心显示版本号转储,丝毫没有最新的应用程序本身(自身使用的闪屏与实数的应用程序 - 这当然不是在那里从二进制绘制为人们可能会认为)。 结果是我没有办法知道,如果崩溃转储从一个2岁的二进制(什么版本号表示)或2个月的旧的二进制,因此没有获得正确的源代码(没有源控制两种方式来了! )



Answer 2:

下面是我们在我们公司使用: 未成年人补丁版本版本号

主要的变化包括一个完整的发布周期,包括市场的参与等,这数字是由部队R&d之外controled(例如,在我工作的地方之一,市场决定,我们的下一个版本将是“11” -匹配一个竞争对手。我们在2.0版本的时候:))。

当一个新的功能或主要的行为改变被添加到产品的次要改变。

补丁版本由一个上升的每一个补丁正式加入到版本,通常只包括错误修复时间。

内部版本时,一个特殊版本的推出为客户使用的,通常有一个bug修复具体到他。 通常认为修补程序将卷起的下一个补丁或次要版本(和产品管理通常标志着该bug在我们的跟踪系统“将被释放补丁3”)。



Answer 3:

我是一个大风扇的语义版本

正如许多人都评论这种使用XYZ格式,并提供了很好的理由,为什么。



Answer 4:

我们的R&d部门使用1.0.0.0.0.000:MAJOR.minor.patch.audience.critical_situation.build

请, ,不这样做。



Answer 5:

这种问题的更多的是不是客观方面的宗教战争。 总是有吨的优劣对一个编号方案或其他的。 到底什么人可以(或应该)给你的是,他们使用的方案,为什么他们选择了它。

在我身边,我用一个XYZ方案都是数字,其中:

  • X表示公共API的变化是引进落后不兼容
  • Y表示的另外的一些特征
  • Z分别表示一个修复(或者修正一个错误,或者改变内部结构,而不会影响functionnality)

最后,我用“测试版N”的后缀,如果我想从用户的一些反馈的正式发布之前完成。 没有“RC”后缀没有人是完美的,总是会有错误;-)



Answer 6:

我个人比较喜欢MAJOR.MINOR.BUGFIX后缀,其中后缀为dev用于开发版本(版本控制检出), rc1 / rc2的候选发布版,没有后缀的发行版本。

如果你有更大的发展检出后缀,甚至带有修订版本号,没有必要让他们偶/奇把它们分开。



Answer 7:

我们更majorminormilestonerevision - build方案,其中:

  • major :增加在显著的架构改变或能力的重要进步。
  • minor :小变化,并且不需要架构变化的新功能。
  • milestone :表示代码的稳定性和成熟度:
    • 0为开发/预阿尔法
    • 1用于α-
    • 2测试
    • 3发布候选版(RC)
    • 4,用于最终/产品发布
  • revision :表示发布,补丁或bug修正数。
  • build :唯一提及具体的生产或版本,应用程序的。 建号是顺序整数,典型地在每个构建递增。

例子:

  • 1.4.2.0-798 :版本一beta版本1.4 ,通过版本号创建798
  • 1.8.3.4-9701.8-RC4 ,通过构建号创建970
  • 1.9.4.0-986 :一是产能释放的版本1.9 ,通过版本号创建986
  • 1.9.4.2-990 :版本二修正版1.9 ,通过版本号创建990

由于prodcution版本总是有4在他们的版本字符串的第3位,该位可用于生产的版本中删除。



Answer 8:

在库的情况下,版本号告诉你有关兼容性的两个版本,因而如何艰难的升级将是之间的水平

一个bug修复版本需要保持二进制,源和序列化兼容。

次要版本意味着不同的事情不同的项目,但通常他们并不需要保存源代码的兼容性。

主要版本号码都可以破解所有三种形式。

我写更多的理由在这里 。



Answer 9:

随着敏捷软件开发实践和SaaS应用程序,一个主要的想法与次发行版已经消失 - 释放出来非常频繁定期 - 使依赖于这种区别释放编号方案不再对我很有用。

我公司采用的是编号方案,是以年发布开始其次是一年之内释放号码的最后2位数字。

因此,第四释放在2012年开始将是12.4。

如有必要,可以包括后一个“错误修正”版本号,但最好你释放足够频繁,这些都不是经常需要 - 那么“12.4.2”。

这是一个非常简单的方案,并没有给我们任何的,我之前使用其他版本编号方案的问题。



Answer 10:

密切和开源版本号政策之间的差异也可以来自商业方面 ,当主要版本可以反映释放实例的一年。



Answer 11:

我们曾在这里做的是major.minor.platform.fix。

专业 :当从这个构建保存的文件不再与以前的版本兼容我们增加这个数字。
:文件保存在3.0.0.0版本不会与2.5.0.0版本兼容。

轻微的 :当已经增加了新的功能,我们增加这个数字。 此功能应该由用户看到。 不是一个隐藏的功能为developper。 当主要递增这个数字被重置为0。

平台 :这是我们使用DEVELOPPEMENT平台。
:1个代表.NET Framework 3.5版。

修复 :我们增加这个数字时bug修正都包含在这个新版本。 当主要或次要递增这个数字被重置为0。



Answer 12:

只是

Major.Minor.Revision.Build


文章来源: What version numbering scheme do you recommend?