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

  • 相关阅读:
    ORA01033:ORCLE initialization or shutdown in progress问题的解决
    OA、SOA和SOAP
    [导入]循环赛如何排列问题
    [导入]Free Compilers / Interpreters
    终于知道纹理的GL_MODULATE是怎么回事了
    怎么acm.tongji.edu.cn又关机了?
    [导入]一个2002罗马尼亚赛区的ACM的题目
    netcraft at tongji.edu.cn
    [导入]对编写安全的代码这个方法有用吗?
    [导入]最简单的方法输出下列图形
  • 原文地址:https://www.cnblogs.com/tlz888/p/10239960.html
Copyright © 2020-2023  润新知