• 语义化版本号


    1、实际案例:

    React最近其中几个版本发布日志:

     从上图,我们不难得出几个结论:

    • 软件的版本通常由三位组成,形如:X.Y.Z
    • 版本是严格递增的,此处是:16.2.0 -> 16.3.0 -> 16.3.1
    • 在发布重要版本时,可以发布alpha, rc等先行版本
    • alpha和rc等修饰版本的关键字后面可以带上次数和meta信息

    2、这玩意也有标准?是的,真有

    通俗而言,“依赖地狱”指开发者安装某个软件包时,发现这个软件包里又依赖不同特定版本的其它软件包。随着系统功能越来越复杂,依赖的软件包越来越多,依赖关系也越来越深,这个时候可能面临版本控制被锁死的风险。

    因此,Github 起草了一个具有指导意义的,统一的版本号表示规则,称为 Semantic Versioning(语义化版本表示)。该规则规定了版本号如何表示,如何增加,如何进行比较,不同的版本号意味着什么。

    官网:semver.org/ 中文版:semver.org/lang/zh-CN/

    版本格式

    版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

    • 主版本号(major):当你做了不兼容的 API 修改,
    • 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,
    • 修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。

    先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

    先行版本

    当要发布大版本或者核心的Feature时,但是又不能保证这个版本的功能 100% 正常。这个时候就需要通过发布先行版本。比较常见的先行版本包括:内测版、灰度版本了和RC版本。Semver规范中使用alpha、beta、rc(以前叫做gama)来修饰即将要发布的版本。它们的含义是:

    • alpha: 内部版本
    • beta: 公测版本
    • rc: 即Release candiate,正式版本的候选版本

    比如:1.0.0-alpha.0, 1.0.0-alpha.1, 1.0.0-beta.0, 1.0.0-rc.0, 1.0.p-rc.1 等版本。alpha, beta, rc后需要带上次数信息。

    版本发布准则

    列举出比较实用的一些规则:

    • 标准的版本号必须采用XYZ的格式,并且X、Y 和 Z 为非负的整数,禁止在数字前方补零,版本发布需要严格递增。例如:1.9.1 -> 1.10.0 -> 1.11.0。
    • 某个软件版本发行后,任何修改都必须以新版本发行。
    • 1.0.0 的版本号用于界定公共 API。当你的软件发布到了正式环境,或者有稳定的API时,就可以发布1.0.0版本了。
    • 版本的优先层级指的是不同版本在排序时如何比较。判断优先层级时,必须把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较。
  • 相关阅读:
    linux分析、诊断及调优必备的“杀器”之二
    浏览器被“hao123.3377.com”主页劫持的解决办法
    Nginx一个实现负载均衡的强大web server
    【百度之星
    c/c++ 参数传递
    【百度之星】-IP聚合
    百度之星-大搬家-递推
    IOS开发之Swift学习笔记
    【Leetcode】84. Largest Rectangle in Histogram 85. Maximal Rectangle
    【Leetcode】82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/songjn/p/13355156.html
Copyright © 2020-2023  润新知