zoukankan      html  css  js  c++  java
  • 关于语义化版本(semantic versioning or SemVer)

     

    1  为什么要有SemVer?

        SemVer用来规范组件之间的依赖版本,它使用一个版本号来传递出组件的API的变化情况。

    在理解这规范之后,看一眼依赖包的版本号,就知道API的变化(兼容性)程度,方便了依赖管理,避免了依赖混乱带来的问题。

    (降低大工程的复杂度-->组件化-->明确API兼容性(稳定性))

    2  规范的内容是怎样的?

      首先是版本号的组成形式,然后是这个形式对应的版本兼容性(API Compatibility)含义,最后是不同版本号之间的

    优先层级(version precedence)比较。

    2.1  组成格式: 

      [主].[次].[修订]-[先行]+[编译元数据]

    (主:major      次:minor     修订:patch     先行:pre-release(预发布)      编译元数据:build metadata)

      在字符使用上,主,次,修订版本号都是使用(非0开头)数字

    先行版本号和编译元数据使用数字和英文字母以及连字符,即[0-9A-Za-z-],格式上可有多段由句点连接起来。

    例子:

    1.0.0-beta+exp.sha.5114f85

    主版本号:1,次版本号:0,修订号:0;先行号:beta,编译元数据:exp.sha.5114f85

    2.2 不同版本号的含义

    1. 主版本号:当你做了不兼容的 API 修改,
    2. 次版本号:当你做了向下兼容的功能性新增
    3. 修订号:当你做了向下兼容的问题修正
    4. 先行号:可能不稳定,不满足兼容性的临时版本,
    5. 编译元数据:只是标识编译版本。

    2.3 优先层级

      优先层级是指不同版本号如何排序。具体是:依次比较主版本号,次版本号,修订号以及先行号,

    先比较的号码有结果就不再比较后续号码。此外,先行号从左到右按照句点分开逐个比较。最后,

    编译元数据不影响版本号的优先层级

    范例:

      1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

  • 相关阅读:
    浏览器 页面报错
    TP单字母函数
    TP系统常量、项目后台的搭建、模板中常量字符串替换
    ThinkPHP3.2的简单知识
    面向对象基本概念,关键字,类的组成,静态,三大特性,创建类和对象,设计模式
    layui(弹出层)
    头像文件上传 方法一:from表单 方法二:ajax
    上传文件
    流程增加,发起事件,流程显示,处理。
    分页,条件查找后再分页
  • 原文地址:https://www.cnblogs.com/tlz888/p/10239960.html
Copyright © 2011-2022 走看看