软件版本号的知识

2009-05-09 405 0

  自己的无知啊!不知道怎么去定义软件的版本号,就乱给jremind定了一个。

好好学习一下版本的定义规则。

  为了维护软件项目, 我们提出了对版本进行管理控制的要求. 而对于用户来说, 版本直接体现在版本号的命名上. 那么, 如何对版本号进行命名呢? 我查了许多的资料, 希望能解释得比较具体, 同时也希望您在阅读本文的时候, 能够对版本号的命名格式提出自己的见解, 这当然包括一些版本号命名的个例. 下面, 让我们看一下比较普遍的 3 种命名格式.

  GNU 风格的版本号命名格式: 主版本号.子版本号[.修正版本号[.编译版本号]]

  英文对照: Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]

  示例: 1.2.1, 2.0, 5.0.0 build-13124

  Windows 风格的版本号命名格式: 主版本号.子版本号[修正版本号[.编译版本号]]

  英文对照: Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]

  示例: 1.21, 2.0

  .Net Framework 风格的版本号命名格式: 主版本号.子版本号[.编译版本号[.修正版本号]]

  英文对照: Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]]

  官方说明参考:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemVersionClassTopic.asp

  由于, 有官方解释, 所以本文不做说明.

  GNU 风格的版本号管理策略

  当项目初版本时, 版本号可以为 0.1 或 0.1.0, 也可以为 1.0 或 1.0.0, 如果你为人很低调, 我想你会选择那个主版本号为 0 的方式;

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

  当项目在原有的基础上增加了部分功能时, 主版本号不变, 子版本号加 1, 修正版本号复位为 0, 因而可以被忽略掉;

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

  另外, 编译版本号一般是编译器在编译过程中自动生成的, 我们只定义其格式, 并不进行人为的控制.

  Window 下的版本号管理策略

  当项目初版时, 版本号为 1.0 或 1.00;

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

  当项目在原有的基础上增加了部分功能时, 主版本号不变, 子版本号加 1, 修正版本号复位为 0, 因而可以被忽略掉;

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

  另外, 编译版本号一般是编译器在编译过程中自动生成的, 我们只定义其格式, 并不进行人为的控制.

  另外, 还可以在版本号后面加入 Alpha, Beta, Gamma, Current, RC (Release Candidate), Release, Stable 等后缀, 在这些后缀后面还可以加入 1 位数字的版本号.

  对于用户来说, 如果某个软件的主版本号进行了升级, 用户还想继续那个软件, 则发行软件的公司一般要对用户收取升级费用; 而如果子版本号或修正版本号发生了升级, 一般来说是免费的.

相关文章

15年来的手艺之路:手艺人赵鹏的自述
纪念 Google 25 周年:从搜索引擎到科技巨头的演变之路
1小时编写一个支持七牛上传的 markdown 客户端3(打包发布篇)
1小时编写一个支持七牛上传的 markdown 客户端2(代码优化篇)
1小时编写一个支持七牛上传的 markdown 客户端1(技术实现篇)
从 wordpress 转移到 hexo

Leave a Reply