产品版本号的定义规则

产品工作难免涉及到给产品定义版本号,事情虽小但是也有讲究,本篇结合网上看到的资料,聊聊版本号应该怎样去定义。

在我们下载或更新软件时,经常会看到一串版本数字,这就是所谓的版本号。

版本号一般由产品经理或项目经理给定义。

那么这些我们经常打交道的版本号是如何去命名的呢?

命名规则

一般我们使用语义化版本(Semantic Versioning)的命名方式,简称 SemVer。

官方网站:semver 版本管理规范

中文译本:https://semver.org/lang/zh-CN/

版本号的格式为 X.Y.Z(又称 Major.Minor.Patch),递增的规则为:

X:主版本号,重大升级改动,一般 API 的兼容性变化时,包括但不限于新增特性、修改机制、删除功能, 一般不兼容上一个主版本号。

Y:次版本号,新增或修改功能时,必须是向前兼容,不影响软件的整体流程或概念的更新。

Z:修订号,一般做 Bug 修复时。

除去这三个主要的版本描述,还可以在后面加一些特别标记,比如要增加软件的更新总数、或者是特别标注发布日期等等。

例如下面这个版本定义:

54,表示的是当前软件的主要版本

1,表示的是次要版本

30,表示的是主要修复版本

7,就是一个额外的版本说明,可以自定义它的作用

还可以增加例如 beta字样表示是公测版本,例如 2.0.4 beta2 表示第二个beta版本

通用的版本定义可以给用户和合作伙伴带来清楚的认知,知道产品处于什么阶段。

PS:一般来说不用新增修订号。

控制规范

  1. X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如 1.9.0 -> 1.10.0 -> 1.11.0
  2. 0.Y.Z 的版本号表明软件处于初始开发阶段,意味着 API 可能不稳定;1.0.0 表明版本已有稳定的 API。
  3. 当 API 的兼容性变化时,X 必须递增,Y 和 Z 同时设置为 0;当新增功能(不影响 API 的兼容性)或者 API 被标记为 Deprecated 时,Y 必须递增,同时 Z 设置为 0;当进行 bug fix 时,Z 必须递增。
  4. 先行版本号(Pre-release)意味该版本不稳定,可能存在兼容性问题,其格式为:X.Y.Z.a-c,如 1.0.0.a1,1.0.0.b99,1.0.0.c1000。
  5. 开发版本号常用于 CI-CD,格式为 X.Y.Z.dev[正整数],如 1.0.1.dev4。
  6. 版本号的排序规则为依次比较主版本号、次版本号和修订号的数值,如 1.0.0 < 1.0.1 < 1.1.1 < 2.0.0;对于先行版本号和开发版本号,有:1.0.0.a100 < 1.0.0,2.1.0.dev3 < 2.1.0;当存在字母时,以 ASCII 的排序来比较,如 1.0.0.a1 < 1.0.0.b1。

注意事项

  • 版本号前不要加 v。
  • 不要在数字前补 0。错误示例:01.12.03。
  • 每一位版本号按照 +1 的速度递增,不要在版本号之间跳跃。
  • 主版本号停留在 0 的版本号,即 0.x.x 应当视作还在内部开发阶段的代码。如果代码有公共 API,此时不宜对外公开。
  • 1.0.0 的版本号用于界定公共 API 的形成。
  • 当次版本号递增时,修订号归零;当主版本号递增时,次版本号、修订号归零。
  • 进行新的开发时,版本号从 0.1.0 开始。
  • 如果不小心把一个不兼容的改版当成了次版本号发行,应当发行一个新的次版本号来更正这个问题并且恢复向下兼容。注意 不能去修改已发行的版本。

PS:上述来自淘宝FED

版本号的价值

上述都是版本号的一些定义,它在产品工作中到底有何价值?尤其是在非软件的产品之中,是不是版本号就完全没有价值了?

就我在非软件的互联产品经验而言:

1.版本号能协助产品管理迭代

带版本号的迭代排起来非常简洁清晰,产品也能根据版本号大致清楚产品所处的阶段。

2.版本号让项目成员清楚版本的变动意义

用项目成员看到排期中变动是 X,则知道此事必定不小,当看到变动的是 Z,则可以预判大概率是修bug。

3.版本号让项目成员清晰当前版本所处的前后迭代

定义了版本号就不会开发问,前一个迭代是啥?接下来的迭代是啥?哪怕你说了N次也不会在意。

有了版本号,数字上的体现就直接明确了。

总之,定义好版本号后按照规则变动,会瞬间感觉专业和条理了很多!

-> 加入科技玩家交流群组:点击加入 <-
注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @十一 发布。如若转载,请注明出处: 科技玩家 » 产品版本号的定义规则

给TA买糖
共{{data.count}}人
人已买糖
产品

思考:抖音为什么不做进度条?

2018-9-9 20:00:00

产品产品体验

利用罗技Flow技术优雅地使用鼠标M590

2022-3-17 23:31:28

19 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. 大壮

    大佬666

  2. test88

    大佬666

  3. test88

    666

  4. 滴滴滴

    666

  5. 冷血肃肃

    ?陈年的酒酿都被你们炸出来了

  6. kokawu

    大佬666

  7. mwydebb

    大佬666

  8. ★丶DreamZero°

    get√,新技能

  9. homura

    大佬666

  10. 小技技

    谢谢分享~

  11. dadada

    收藏一下

  12. 风满楼

    谢谢楼主分享

  13. 张三666

    好的学习一下

  14.  17691

    太优秀了

  15. sams

    谢谢分享,学习了

  16. 1874

    谢谢楼主分享

  17. 小茜茜

    大佬666

  18. Yoke

    大佬666

  19. nightmare

    大佬666

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索