版本号的那些事

609 阅读3分钟

版本号格式

major.minor.patch _希腊字母

主版本号.次版本号.修补版本号 _版本阶段说明

  • major:新的架构调整,不兼容老版本
  • minor:新增功能,兼容老版本
  • patch:修复bug,兼容老版本
  • 希腊字母:base、alpha、beta、rc、release
    • base:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是 页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构。
    • alpha:软件的初级版本,表示该软件在此阶段以实现软件功能为主,通常只在软件开发者 内部交流,一般而言,该版本软件的Bug较多,需要继续修改,是测试版本。测试 人员提交Bug经开发人员修改确认之后,发布到测试网址让测试人员测试,此时可 将软件版本标注为alpha版。
    • beta:该版本相对于Alpha 版已经有了很大的进步,消除了严重错误,但还需要经过多次 测试来进一步消除,此版本主要的修改对象是软件的UI。修改的的Bug 经测试人 员测试确认后可发布到外网上,此时可将软件版本标注为 beta版。
    • rc:该版本已经相当成熟了,基本上不存在导致错误的Bug,与即将发行的正式版本相差无几。
    • release:该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式的版本,是最终交付用户使用的一个版本。该版本有时也称标准版。

package.json中依赖版本匹配规则

  1. ~version

不改变主版本号和次要版本号,不低于声明的修补版本号

  1. ^version

不改变主版本号,不低于声明的次版本号修补版本号,如果大版本号为0,则^的行为与~相同

  1. version

必须匹配某个版本

  1. >version

必须大于某个版本

  1. >=version

可大于或等于某个版本

  1. <version

必须小于某个版本

  1. <=version

可以小于或等于某个版本

  1. x-range

x的位置表示任意版本

  1. version1 - version2

大于等于version1,小于等于version2

  1. range1 || range2

满足range1或者满足range2,可以多个范围

  1. latest

安装最新发布的版本

注意事项

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

参考来源: 软件的版本号组成及其意义论「版本号」的正确使用方式