文章目录

  • 软件版本阶段
  • 语义化版本
  • FAQ
  • npm中package.json文件依赖项版本号
  • 参考

软件版本阶段

  • Alpha版:预览版或内部测试版,一般不向外部发布,会有很多 bug。
  • Beta版:公测版。消除了严重错误,但还是存在着一些缺陷,需要经过多次测试消除。
  • RC版:Release Candidate 候选版本。也叫做 Gamma 版本。该版本已经相当成熟,基本上不存在导致错误的 bug,与即将发行的正式版相差无几。
  • Release版:正式版本。

语义化版本

主版本号.次版本号.修订号

  1. MAJOR:当你做了不兼容的API修改;
  2. MINOR:当你做了向下兼容的功能性新增;
  3. PATCH:当你做了向下兼容的bug修复。

语义化版本控制规范:

  • 主版本号为零(0.y.z)的软件处于开发初始阶段,一切都可能随时被改变。这样的公共 API 不应该被视为稳定版。
  • 1.0.0的版本号用于界定公共 API 的形成。这一版本之后所有的版本号更新都基于公共 API 及其修改内容。
  • 修订号 Z(x.y.Z | x > 0)必须在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。
  • 次版本号 Y(x.Y.z | x > 0)必须在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用时也必须递增。也可以在内部程序有大量新功能或改进被加入时递增,其中可以包括修订级别的改变。每当次版本号递增时,修订号必须归零。
  • 主版本号 X(X.y.z | X > 0)必须在有任何不兼容的修改被加入公共 API 时递增。其中可以包括次版本号及修订级别的改变。每当主版本号递增时,次版本号和修订号必须归零。
  • 先行版本号可以被标注在修订版之后,先加上一个连接号再加上一连串以句点分隔的标识符来修饰。标识符必须由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,且禁止留白。数字型的标识符禁止在前方补零。先行版的优先级低于相关联的标准版本。被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。范例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。

FAQ

我该如何处理即将弃用的功能?
弃用现存的功能是软件开发中的家常便饭,也通常是向前发展所必须的。当你弃用部份公共 API 时,你应该做两件事:

  1. 更新你的文件让使用者知道这个改变
  2. 在适当的时机将弃用的功能透过新的次版本号发布。在新的主版本完全移除弃用功能前,至少要有一个次版本包含这个弃用信息,这样使用者才能平顺地转移到新版 API。

npm中package.json文件依赖项版本号

版本号格式
major.minor.patch

version
必须匹配某个具体版本。如:1.0.0

~version
如果 minor 版本号指定了,那么 minor 版本号不变,而patch版本号任意。如:~1.1.1,表示>=1.1.1<1.2.0
如果 minor 和 patch 版本号未指定,那么 minor 和 patch 版本号任意。如:~1,表示>=1.0.0 <2.0.0

^version
版本号中最左边的非0数字的右侧可以任意。如:^0.1.1 ,表示>=0.1.1<0.2.0

x
x的位置表示任意版本。

*
任意版本。如:*,表示>=0.0.0的任意版本。

参考

  • https://github.com/semver

软件版本阶段与语义化版本(SemVer)相关推荐

  1. Go (Golang) 工具之自动化版本工具 gsemver | semver 语义化版本规范

    文章目录 Go (Golang) 工具之gsemver 什么是gsemver 动机 感谢 gsemver 安装 gsemver 使用 准备 git HEAD 基础 CLI 配置文件 语义化版本 2.0 ...

  2. 如何在软件发布计划中自动化语义化版本与变更日志

    摘要:本文引入两个工具commitizen和standard-version来实现语义化版本与变更日志的自动化,提升规范化程度,减少人工干预. 随着DevOps方法与实践的普及,越来越多的企业开始使用 ...

  3. 【转】语义化版本 2.0.0

    转自:语义化版本 2.0.0 | Semantic Versioning 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API ...

  4. 聊聊 npm 的语义化版本(Semver)

    前言 现在我们要开发一个项目,我们都知道为了方便项目管理,要写一个版本号,那开发的时候初始的版本号是多少呢?是 1.0.0 还是 0.0.1 开始? 如果一个版本号为 X.Y.Z,什么时候是 X 应该 ...

  5. php 语义解析,[扩展推荐] PHP 语义化版本(SemVer)辅助库

    SemVer 是由 Chris Kankiewicz 开发的一个语义化的提取版本号中各种信息的 PHP 辅助库.支持解析.递增和比较等特性. 下面是初始化 SemVer\Version 对象的基本用法 ...

  6. 语义化版本控制模块-Semver

    执行某些命令的时候,你是否遇到过提醒版本过低,需要升级版本的提示,那么对于版本号,是以一个怎样的规则来进行的限制和匹配的呢? semver, 是一个语义化版本号管理的模块,可以实现版本号的解析和比较, ...

  7. 语义化版本命名通行规则

    该规则对版本的迭代顺序命名做了很好的规范,其版本号的格式为X.Y.Z(又称Major.Minor.Patch),递增的规则为: 序号 格式要求 说明 X 非负整数 表示主版本号(Major),当API ...

  8. 语义化版本(semantic versioning)机制里的一些范围标识符

    https://semver.npmjs.com/ carat(hat) symbol 就是键盘数字6上面的这个符号:^ include everything greater than a parti ...

  9. 语义化版本控制规范(SemVer)

    参考链接 https://semver.org/lang/zh-CN/ 语义化版本 2.0.0 (透过版本号的改变来传达信息.) 摘要 版本格式: 主版本号.次版本号.修订号 版本号递增规则如下: 1 ...

最新文章

  1. Mysql中的DCL
  2. 丽水数据可视化设计价格_网站建设之B端交互设计——数据可视化图表
  3. 解决小米手机缩放窗口问题
  4. 蓟门边studio-码农创业路的起点
  5. 成功解决CondaError: Error reading file, file should be a text file containing packages conda create --he
  6. 51nod1236 序列求和 V3
  7. Django apache2 安装配置
  8. War-Driving(战争驾驶***)
  9. X3D 参数代码(一)
  10. 接口和一些抽象类的区别
  11. python模拟登录人人
  12. PMP考试需要准备什么教材呢?
  13. 用matlab读pcap文件,libpcap读取本地pcap文件
  14. 状态模式——你若安好,便是晴天
  15. Linux高可用之heartbeat
  16. 最新:亚马逊运营思路
  17. 初阶数据结构 初识二叉树
  18. VM虚拟机Ubuntu设置静态IP方法
  19. 利用Latex如何输入角度符号
  20. 《中国互联网发展报告(2018)》发布 大数据市场交易旺盛

热门文章

  1. 用python脚本自动生成英文字母,每个英文字母的数量是奇数
  2. 如何测试支付宝手机充值的这个功能,写出测试用例
  3. 关于mybatis的逆向工程中分页配置
  4. oracle性能调优书,Oracle性能调优领域的百科全书
  5. 6U-CPCI卡设计方案学习资料第193篇:基于TI 达芬奇DSP TMS320DM8148音视编解码与存储6U-CPCI卡设计方案
  6. eshop项目:在jsp网页上传文件
  7. 大功率无刷电机驱动器设计(持续更新中)
  8. 删除后别人的微信号变成wxid_怎样找回删除的微信好友?
  9. 材料科学与计算机模拟,3材料科学与行为工艺但的计算机模拟.ppt
  10. ug专属界面如何定制,ug软件如何定制角色