参考链接 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中.

语义化版本控制规范(SemVer)的更多相关文章

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

    摘自: http://semver.org/lang/zh-CN/ 简介 在软件管理的领域里存在着被称作"依赖地狱"的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某 ...

  2. 版本号严格遵守semver语义化标准

    地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...

  3. semantic versioning语义化版本号

    语义化版本号 是由github创始人 Tom Preston-Werner 发起的一个关于软件版本号的命名规范,关于这个规范详细的说明可以在 官网 查看,也可访问其 GitHub项目页面 ,官网文档: ...

  4. Git打标签与版本控制规范

    前言 本文适用于使用Git做VCS(版本控制系统)的场景. 用过Git的程序猿,都喜欢其分布式架构带来的commit快感.不用像使用SVN这种集中式版本管理系统,每一次提交代码,都要为代码冲突捏一把冷 ...

  5. Semver(语义化版本号)扫盲

    最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...

  6. 语义化npm版本号

    参考资料: 语义化版本2.0.0 the semantic versioner for npm 在package的devDependencies和dependencies2个字段中有指定依赖包版本,这 ...

  7. npm学习(八)之如何使用语义化版本

    npm的语义化版本控制——Semantic versioning 在新发布的代码中传达更改的程度非常重要,因为有时更新会破坏包需要的代码(称为依赖项).语义化版本控制(semver)是一个旨在解决这个 ...

  8. 关于html页面元素语义化的一点思考

    这几天在看招聘公告前端工程师的要求基本都附带了html语义化的要求,所以稍微关注了下这方面的知识.对于其中的一点就是要求页面元素在去除css样式之后还能有良好的布局引发了我一点思考.作为前端刚入门的我 ...

  9. semver语义化版本号

    semver语义化版本号 语义化版本号各位置的含义 版本号:X.Y.Z X: 代表发生了不兼容的API改变 Y: 代表向后兼容的功能性变化 Z: 代表向后兼容bug fixes 语义化版本号示例 1. ...

随机推荐

  1. Kali Linux渗透测试实战 2.1 DNS信息收集

    目录 2.1 DNS信息收集1 2.1.1 whois查询3 2.1.2 域名基本信息查询4 Dns服务器查询4 a记录查询4 mx记录查询5 2.1.3 域名枚举5 fierse 5 dnsdict ...

  2. ovs flow 命令集

    流表可以有多个执行动作,是从左向右以此执行,常用动作如下: output:port: 输出数据包到指定的端口.port 是指端口的 OpenFlow 端口编号 group:group_id 输出数据包 ...

  3. JQuery Mobile - 自定义图标!

    环境 jquery1.9.1.js jquery mobile 1.4.2版 图标制作 18x18px 底透明的png图标 使用图标,这个过程开始怎么弄都不行,只有个灰色的圆出现,不见图标:或者出现图 ...

  4. Python 常用的内置函数

    1. str.isdigit( ) 作用:检测字符串是否有数字组成 2. strip( ) 作用:除去首尾指定的字符,包括空格,换行符,不能除去中间的字符 3. slice( ) 作用:以指定参数切割 ...

  5. C#6.0语言规范(十二) 数组

    数组是一种数据结构,包含许多通过计算索引访问的变量.包含在数组中的变量(也称为数组的元素)都是相同的类型,这种类型称为数组的元素类型. 数组具有确定与每个数组元素相关联的索引数的等级.数组的等级也称为 ...

  6. Spring中ioc的实现原理

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  7. markdown的学习记录

    一.markdown用处: 写博客,写微信公众号等等 二.准备工作: 工具使用:由于代码经常使用idea,所以继续使用idea编写markdown,但需要安装插件:MarkDown Navigator ...

  8. 机器学习-Matplotlib绘图(柱状图,曲线图,点图)

    matplotlib 作为机器学习三大剑客之一   ,比热按时无比强大的 matplotlib是绘图库,所以呢我就分享一下简单的绘图方式 #柱状图 #导报 柱状图 import matplotlib. ...

  9. 04-01 Java switch、for、while、do while语句,循环嵌套,跳转语句break、continue、return

    语句 1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n ...

  10. [umbraco] 数据结构

    我想此图就能说明一切了,不需要再废话了