参考链接 https://semver.org/lang/zh-CN/

语义化版本 2.0.0

(透过版本号的改变来传达信息.)

摘要
版本格式: 主版本号.次版本号.修订号
版本号递增规则如下:
1.主版本号: 做了不兼容的API修改.
2.次版本号: 做了向下兼容的功能性新增.
3.修订号: 做了向下兼容的问题修正.

规范摘要:以下以x.y.z表示版本号格式

  • 上一级版本号递增时,下面的版本号必须归零.
  • 举个简单的例子就可以展示语义化的版本控制如何让依赖地狱成为过去。假设有个名为“救火车”的函式库,它需要另一个名为“梯子”并已经有使用语义化版本控制的包。当救火车创建时,梯子的版本号为 3.1.0。因为救火车使用了一些版本 3.1.0 所新增的功能, 你可以放心地指定依赖于梯子的版本号大等于 3.1.0 但小于 4.0.0。这样,当梯子版本 3.1.1 和 3.2.0 发布时,你可以将直接它们纳入你的包管理系统,因为它们能与原有依赖的软件兼容。
  • 0.y.z中 0 为主版本号,如 0.1.0 是初始化开发版本.并在后续的每次发行时递增次版本号.
  • 主版本为0时,表示仍在快速开发阶段,每天都在改变API.
  • 如果不小心把不兼容的改版当成了次版本号发行了该怎么办?
    • 一旦发现自己破坏了语义化版本控制的规范,就要修正这个问题.
    • 发行一个新的次版本号恢复向下兼容.
    • 不能修改已发行的版本.
    • 将有问题的版本号记录下来,告诉使用者问题所在,让他们知道这是一个有问题的版本.
  • 如何处理即将弃用的功能?
    • 更新文件说明让使用者知道这个改变.
    • 在适当时机将弃用的功能透过新的次版本号发布.
    • 在新的主版本完全移除弃用功能前,至少有一个次版本包含这个即将弃用的说明信息,这样使用者才能平顺地过渡到新版API中.

最新文章

  1. Eclipse 常用快捷键 (动画讲解)
  2. win8环境安装.net3.5
  3. web桌面程序之锁屏功能分析
  4. select()
  5. [css] CSS相对定位|绝对定位
  6. (工作经验总结一二)队列--多个main的原因
  7. CentOS 7 安装serverjre 9
  8. 左偏树(BZOJ4003)
  9. Jqgrid pager 关于“local” dataType 动态加载数据分页的研究(没好用的研究结果)
  10. PowerShell一次执行多条命令
  11. ethereum/EIPs-1077 Executable Signed Messages
  12. extern字符串常量,宏定义字符串常量,怎么选
  13. Stream processing with Apache Flink and Minio
  14. Sangfor_AC用户不在线但在“在线用户管理”里有显示
  15. Spark(Python) 从内存中建立 RDD 的例子
  16. 自定义Web组件
  17. js与native的交互
  18. java 方法重写和属性重写
  19. 【JQ】鼠标经过一组button,弹出各自的气泡图片
  20. Zabbix 3.4.11版本 自定义监控项

热门文章

  1. Delphi7调用DelphiXE编写的DLL问题
  2. Android-Java静态代码块&局部代码块
  3. Azure DevOps Server 2019 (TFS)安装教程
  4. 背水一战 Windows 10 (44) - 控件(日期类): CalendarView, DatePicker, TimePicker
  5. CentOS 7修改yum源为阿里源
  6. 前端基础-html 列表标签,表格标签,表单标签
  7. 全世界最顶级黑客同时沸腾在DEF CON 25,是怎样一种体验?
  8. WebDriver高级应用实例(3)
  9. odoo开发笔记--odoo可用小图标
  10. (转)pathlib路径库使用详解