• 关于语义化版本(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

  • 相关阅读:
    使用kubectl管理Kubernetes(k8s)集群:常用命令,查看负载,命名空间namespace管理
    HCIA学习笔记七:IP地址
    HCIA学习笔记四:华为设备登录信息
    HCIA学习笔记五:Telnet华为路由器
    HCIA学习笔记八:子网掩码划分
    HCIA学习笔记九:变长子网掩码VLSM
    HCIA学习笔记六:SSH华为路由器
    HCIA学习笔记三:华为VRP基本命令
    HCIA学习笔记二:eNSP的安装和使用
    vue3 学习初识体验常见指令vfor和vmodel
  • 原文地址:https://www.cnblogs.com/tlz888/p/10239960.html
Copyright © 2020-2023  润新知