软件版本定义【转、原】

       最近一段时间咱们一款产品不断的进行改版,好不容易初始版本稳定后,又接着进入无序的版本迭代,开发人员完成开发任务发版以后,客户反馈回来的问题,与实际交付的版本内容不一致,明确后发现是上一版本产生的,又或者1.1在测试,1.2又马上进入开发,代码混乱,需求混乱,整个项目推动过程,乱糟糟的,毫无章法,频频遭到客户投诉;安全

        为了改变现状,咱们从产品需求、开发、测试、发版都定义了具体的版本号,客户提交问题、测试反馈问题、开发人员解决问题、开发需求所有对应到版本,总之全部问题说话以前所有以版本开头,如此以后项目推动过程比原来稳健多了,客户这边也慢慢习惯这种推动方式,目标清晰,结果明确;测试

    在版本号的定义方式上刚开始团队是模糊的,最初是两位数,如1.2;慢慢发现如此叠加,很快版本就2.0、3.0了;所以后来又演变成三位,如1.1.2;版本号第一位:用来控制大的改版,如UI总体变动,重大功能升级等; 版本号第二位:用来控制平常一些需求演进,小功能迭代;第三位:用来发布内部测试,其实这种定义方式我最近在豆瓣上看到文章才知道使用的是GNU风格;ui

下面是我在豆瓣上看到的文章,摘了部分,给你们看看:
版本控制比较广泛的 3 种命名格式 : 

1、GNU 风格的版本号命名格式 

主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]] 

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]] 

示例 : 1.2.1, 2.0, 5.0.0 build-13124 

2、Windows 风格的版本号命名格式 

主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]] 

Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]] 

示例: 1.21, 2.0 

3、.Net Framework 风格的版本号命名格式 

主版本号.子版本号[.编译版本号[.修正版本号]] 

Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]] 

版本号由二至四个部分组成:主版本号、次版本号、内部版本号和修订号。主版本号和次版本号是必选的;内部版本号和修订号是可选的,可是若是定义了修订号部分,则内部版本号就是必选的。全部定义的部分都必须是大于或等于 0 的整数。 应根据下面的约定使用这些部分: 

Major :具备相同名称但不一样主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得没法实现向后兼容性。 

Minor :若是两个程序集的名称和主版本号相同,而次版本号不一样,这指示显著加强,但照顾到了向后兼容性。例如,这适用于产品的修正版或彻底向后兼容的新版本。 

Build :内部版本号的不一样表示对相同源所做的从新编译。这适合于更改处理器、平台或编译器的状况。 Revision :名称、主版本号和次版本号都相同但修订号不一样的程序集应是彻底可互换的。这适用于修复之前发布的程序集中的安全漏洞。程序集的只有内部版本号或修订号不一样的后续版本被认为是先前版本的修补程序 (Hotfix) 更新。 

版本号管理策略 

1、GNU 风格的版本号管理策略 

1.项目第一版本时,版本号能够为 0.1 或 0.1.0, 也能够为 1.0 或 1.0.0,若是你为人很低调,我想你会选择那个主版本号为 0 的方式; 

2.当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1; 

3. 当项目在原有的基础上增长了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,于是能够被忽略掉; 

4.当项目在进行了重大修改或局部修正累积较多,而致使项目总体发生全局变化时,主版本号加 1; 

5.另外,编译版本号通常是编译器在编译过程当中自动生成的,咱们只定义其格式,并不进行人为控制。 

2、Window 下的版本号管理策略 

1.项目第一版时,版本号为 1.0 或 1.00; 

2. 当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1; 

3. 当项目在原有的基础上增长了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,于是能够被忽略掉; 

4. 当项目在进行了重大修改或局部修正累积较多,而致使项目总体发生全局变化时,主版本号加 1; 

5. 另外 , 编译版本号通常是编译器在编译过程当中自动生成的,咱们只定义其格式,并不进行人为控制。 

另外,还能够在版本号后面加入 Alpha、Beta、Gamma、Current、RC (Release Candidate)、Release、Stable 等后缀,在这些后缀后面还能够加入1 数字的版本号。对于用户来讲,若是某个软件的主版本号进行了升级,用户还想继续那个软件,则发行软件的公司通常要对用户收取升级费用;而若是子版本号或修正版本号发生了升级,通常来讲是免费的。 spa

相关文章
相关标签/搜索