哪个版本的编号方案做你建议?
-
02-07-2019 - |
题
我的问题是,哪个版本的命名方案应当使用什么类型的项目。
很常见的是主要的。未成年人。修复,但即使这可能导致4号(即Firefox2.0.0.16).有一个模型,奇数字表明开发的版本,甚至数字稳定稿。和各种增加可进入组合,dev3,-rc1,SP2等。
存在的原因,更喜欢一个方案的另一个应该不同类型的项目(即开放源码对封闭源)具有不同的版本的命名方案?
解决方案
有两个好的答案(加上很多个人偏好,请参阅Gizmo对宗教战争的评论)
对于公共应用程序,标准的Major.Minor.Revision.Build最适合IMO - 公共用户可以轻松地告诉他们所拥有的程序的版本,并且在某种程度上,可以告知过时的程度他们的版本是。
对于内部应用程序,用户从未要求提供应用程序,部署由IT处理,用户将致电帮助台,我找到了Year.Month.Day.Build在很多情况下更好地工作。因此,可以对该版本号进行解码,以便向服务台提供更有用的信息,然后提供公共版本号方案。
然而,在一天结束时,我会提出一个最重要的推荐 - 使用一个可以保持一致的系统。如果有一个系统可以设置/编写编译器以便每次都自动使用,使用。
可能发生的最糟糕的事情是你发布的二进制文件版本号与之前的版本号相同 - 我最近一直在处理自动化网络错误报告(某些应用程序),并得出了Year.Month的结论.Day.Build版本号显示在核心转储中,甚至与应用程序本身甚至不是最新的(应用程序本身使用带有实数的启动画面 - 当然,这不是从二进制中提取的,如人们所假设的那样)。结果是我无法知道崩溃转储是来自2年前的二进制文件(版本号指示的是什么)还是2个月大的二进制文件,因此无法获得正确的源代码(也没有源代码控制! )
其他提示
以下是我们在公司中使用的内容:主要。次要。补丁版。内部版本号。
主要更改涉及完整的发布周期,包括营销活动等。 这个数字受到R& D以外的力量的控制(例如,在我工作的一个地方,Marketing决定我们的下一个版本将是'11' - 以匹配竞争对手。我们当时的版本2 :) )。
将新功能或主要行为更改添加到产品时,次要会更改。
每次将补丁正式添加到版本时,补丁版本会增加一个,通常只包括错误修复。
构建版本用于为客户发布特殊版本,通常带有特定于他的错误修复。通常该修补程序将汇总到下一个补丁或次要版本(并且产品管理通常会将错误标记为“将在我们的跟踪系统中为补丁3发布”)。
我是语义版本控制的忠实粉丝
正如许多其他人所评论的那样,它使用了X.Y.Z格式,并提供了很好的理由。
我们的R& D部门使用1.0.0.0.0.000:MAJOR.minor.patch.audience.critical_situation.build
请请,不要那样做。
这种问题是更多有关宗教战争,比目标方面。总有成吨的优点和缺点,对一编号方案或另一个。有什么人可以(或应该)给你的计划,他们使用和为什么他们选择它。
在我身边,我使用X Y Z方案的所有数字中:
- X 表示变化的公共API,介绍后不符
- Y 表示一个外的某些功能
- Z 指示修正(无论是固定的一个错误,无论是改变内部结构,而不会影响的评价)
最后,我使用"测试N"后缀如果我想要一些反馈意见,从用户之前正式发布。没有"遥控"后缀为没有人是完美的,总会有错误;-)
我个人更喜欢MAJOR.MINOR.BUGFIX-SUFFIX,其中SUFFIX是 dev
用于开发版本(版本控制检查), rc1
/ rc2
发布候选版本,发布版本没有后缀。
如果您有开发结帐的后缀,甚至可能使用修订号,则无需将它们变为偶数/奇数以使它们分开。
我们喜欢 major
.minor
.milestone
.revision
-build
方案,其中:
major
:增量在重大的体系结构的改变或重要进展的能力。minor
:小小的改变和新的功能,不需要建筑的改变。milestone
:表示稳定和成熟程度代码:- 0发展/pre-alpha
- 1阿尔法
- 2用于测试
- 3释放候选人(RC)
- 4最后/生产释放
revision
:指示释放,补或修正的数量。build
:唯一提到具体的生成,或版本的应用程序。建立数是按顺序整数通常增加,在每个建设。
实例:
1.4.2.0-798
:第一个测试版的版本1.4
, 创建建立数798
.1.8.3.4-970
:1.8-RC4
, 创建建立数970
.1.9.4.0-986
:第一个生产发布的版本1.9
, 创建建立数986
.1.9.4.2-990
:第二修正版1.9
, 创建建立数990
.
由于prodcution发布总是有 4
在他们的第3位数字的版本串,该数字可以删除用于生产发布。
对于库,版本号会告诉您两个版本之间的兼容性级别,因此升级会有多困难。
错误修复版本需要保留二进制,源代码和序列化兼容性。
次要版本对不同的项目意味着不同的东西,但通常他们不需要保持源兼容性。
主要版本号可以打破所有三种形式。
我写了更多关于这里的理由。
借助敏捷软件开发实践和SaaS应用程序,主要版本与次要版本的想法已经消失 - 版本定期出现频繁 - 因此依赖于此区别的版本编号方案不再有用对我来说。
我的公司使用编号方案,该方案采用发布开始的年份的最后2位数字,然后是该年内的版本号。
因此,2012年开始的第4版将是12.4。
您可以添加“错误修复”功能。如果有必要,之后的版本号,但理想情况下,你经常发布这些通常不是必需的 - 所以“12.4.2”。
这是一个非常简单的方案,并没有向我们提供我之前使用的其他版本编号方案的任何问题。
关闭和开源版本号策略之间的差异也可以来自商业方面,而主要版本可以反映发布的年份。
我们以前做的是 major.minor.platform.fix 。
主要:当此版本中保存的文件不再与之前版本兼容时,我们会增加此数字。
示例:3.0.0.0版中保存的文件与2.5.0.0版不兼容。
次要:我们在添加新功能时会增加此数字。用户应该看到此功能。不是开发人员的隐藏功能。当major增加时,此数字将重置为0.
平台:这是我们用于开发的平台。
示例:1代表.net框架版本3.5。
修复:当此新版本中仅包含错误修复时,我们会增加此数字。当主要或次要增加时,此数字重置为0.
简单地
Major.Minor.Revision.Build