水经注语义化版本控制规范1.2.0版

为了更好的对产品进行版本管理,我们曾基于业界的一些权威参考资料,梳理过两版水经注产品的版本控制规范。

但随着多个平台的产品研发,以及产品在各平台的更新发布,再结合我们的实际情况,现在对版本控制规范进行一次升级调整。

版本号格式

(1)标准的版本号必须采用 X.Y.Z 的格式;

(2)其中 X、Y 和 Z 为非负的整数,且禁止在数字前方补零;

(3)X 是主版本号、Y 是次版本号、而 Z 为修订号;

(4)每个元素必须以数值来递增。例如:1.9.1 -> 1.10.0 -> 1.11.0;

(5)标记版本号的软件发行后,禁止改变该版本软件的内容,任何修改都必须以新版本发行。

主版本号

(1)主版本号 X(X.y.z | X > 0)必须在有任何不兼容的修改被加入时递增;

(2)其中可以包括次版本号及修订级别的改变,也就是说修改的问题比较大时可以改变;   

(3)每当主版本号递增时,次版本号和修订号必须(MUST)归零。

次版本号

(1)次版本号 Y(x.Y.z | x > 0)必须在有向下兼容的新功能出现时递增;

(2)在任何功能被标记为弃用时也必须递增;

(3)也可以在内部程序有大量新功能或改进被加入时递增;

(4)其中可以包括修订级别的改变,也就是说如果修订的问题比较大时可以改变;

(5)每当次版本号递增时,修订号必须归零。

修订号

(1)修订号 Z(x.y.Z | x > 0)必须在只做了向下兼容的修正时才递增;

(2)这里的修正指的是针对不正确结果而进行的内部修改;

(3)修订号需要在release版本的基础上,发现还存在问题,才会产生修订版本;

(4)如果修订版本的功能比较复杂,有待用户反馈,则需要先发行beta版本,如:1.5.1-beta;

(5)如果修订版本的功能比较简单,经测试充分并能确保质量,则可以直接发修订版本的release版本,跳过beta版和rc版。

先行版本号

(1)先行版本号及版本编译信息加到“主版本号.次版本号.修订号”的后面,作为延伸;   

(2)先行版本号可以(MAY)被标注在修订版之后,先加上一个连接号再加上一连串以句点分隔的标识符来修饰;

(3)标识符必须(MUST)由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,且禁止(MUST NOT)留白;

(4)数字型的标识符禁止(MUST NOT)在前方补零;

(5)先行版的优先级低于相关联的标准版本;

(6)被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。

例如alpha版本先行版本号:1.0.0-alpha.1、1.0.0-alpha.2、1.0.0-alpha.3

例如beta版先行版本号:5.0.0-beta.1、5.0.0-beta.2、5.0.0-beta.3

内测版

(1)内测版本号可以被标注在修订版之后,先加上一个连接号再加上一连串以点分隔的标识符来修饰;

(2)标识符必须由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,且禁止留白;

(3)数字型的标识符禁止在前方补零;

(4)内测版的优先级低于相关联的标准版本;

(5)内测版用alpha标识,被标上内测版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求;

例如:1.0.0-alpha、1.2.0-alpha.1、5.1.0-alpha.12

(6)内测版本升级基于数字递增;

例如:5.0.0-alpha.1、5.0.0-alpha.2、5.0.0-alpha.3、5.0.0-alpha.4

(7)内测版仅供公司内部人员测试用,不向外部用户提供。

公测版

(1)公测版用beta标识,被标记为公测版则表示该版本的功能和稳定性还有待修订的可能性;

(2)公测版主版本或次版本升级后的第一个发布版本,因此修订号需要归零。例如:1.0.0-beta、1.2.0-beta、5.0.0-beta

(3)当需要修复问题但不新增功能时,递增先行版本号。例如:5.0.0-beta、5.0.0-beta.2、5.0.0-beta.3

RC版

(1)RC 版全称是 Release Candidate,指发行候选版本;

(2)其中 Release 是发行、发布的意思,Candidate 是候选人的意思,用在软件或者操作系统上就是候选版本。

正式版

(1)当beta版(或rc版)经过一定时间段的用户公测修订后,将去掉beta标识(或rc标识)成为正式版;

(2)正式版意味着已经过用户的使用检验,理论上将不会存在比较大的问题,且运行稳定。   

10

编译信息

(1)版本编译信息可以被标注在版本末尾,先加上一个短横线再加上编译信息(build号)例如:1.0.0-alpha.1-build16063、1.0.0-alpha.1-build16064

平台信息

(1)平台信息主要用于区别操作系统平台;

(2)平台信息主要分:x86、x64和linux等。

水经注语义化版本控制规范

基于上述语义化版本控制规范,我们整理出了适合水经注产品的语义化版本控制规则,并在相应的开发阶段作了举例说明。   

图片

语义化版本控制规范示例

苹果IOS版本控制

由于苹果商店中上传beta版与正式版是分开的,而我们产品更新迭代的频率又比较高。

因此,在同一个次版本号下的多个beta版、rc版或修订版,都采取修订号自然增长的方式进行发布。

但我们在开发过程中,仍然按本文所规定的语义化版本规范,并与发布版本进行一一对应管理。

图片

苹果IOS版本管理示例

写在最后

通过语义化版本规划,我们可以透过修改相应的版本号来向用户说明产品的修改。

当然,每个产品的实际情况不同,比如更新迭代很快的产品就会跳过rc版本,而beta版本的周期也会比较短(甚至也会跳过)。

我们水经注产品的版本控制规范,虽然参考自权威资料,但也根据我们的实际情况进行了调整。

因此,我们在制定自己的产品版本控制规范时,一定不能生搬硬套,但也要遵循最基本的版本控制规则。

最后,本文仅供大家参考,并欢迎提出不同的意见和建议,让我们共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/323281.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你使用Django如何连接Mysql

目录 一、引言 二、准备工作 三、配置Django连接MySQL 1、安装MySQL驱动: 2、配置数据库设置: 3、 创建数据库迁移: 四、编写Django模型和视图函数 1、编写模型: 2. 编写视图函数: 3. 编写模板: …

帆软笔记-决策表报对象使用(两表格联动)

效果描述如下: 数据库中有个聚合商表,和一个储能表,储能属于聚合商,桩表中有个字段是所属聚合商。 要求帆软有2个表格,点击某个聚合商,展示指定的储能数据。 操作: 帆软选中表格单元&#xf…

【揭秘】武汉建筑安全员ABC证报考内幕,社保问题竟成硬伤!

【揭秘】武汉建筑安全员ABC证报考内幕,社保问题竟成硬伤! 没有武汉社保可以报考建筑安全员C3证建安C证吗? 武汉市三类人员安全员ABC报考,要求建筑公司给专职安全、项目经理、技术负责人等这些人员缴纳社保才可以报考建筑安全员A…

通信电缆的UL认证安全标准UL 444详情介绍

在介绍相关标准之前先介绍一下UL认证和UL测试报告的区别 UL认证是自愿性的认证,需要检测产品和审核工厂,每个季度审核一次,费用高、时间久,而且审厂非常的严格。 UL测试报告是根据产品选用相应的UL标准进行测试合格后&#xff0…

Unity对应SDK和NDK版本的对照表

官网:Unity - Manual: Android environment setup 本人安装的是2022版本长期支持版本2022.3.15f1c1 安装Java的JDK环境就不在这里展开了,就记录下对Android SDK的设置,要与Unity的版本对应,否则会出现很多莫名奇妙的问题。 打开…

【HarmonyOS4.0】第十一篇-ArkUI布局容器组件(三)

五、格栅布局容器 GridContainer纵向排布栅格布局容器,仅在栅格布局场景中使用。该组件不再维护,推荐使用新组件GridCol、GridRow。 5.1.栅格容器GridRow 栅格容器组件,仅可以和栅格子组件(GridCol)在栅格布局场景中使用。 5.1.1.接口 G…

污水泵站为何会导致污染事件发生及如何预防?

污水泵站是废水处理系统中至关重要的组成部分,但它们的故障可能导致严重的污染事件。本文将深入探讨污水泵站导致污染的原因,并介绍先进的预防性技术,如PreMaint,来有效应对这些问题。 一、污水泵站的污染事件发生原因 1. 不适当…

2023转转技术年货发布啦

在这个信息爆炸的时代,技术的进步变得前所未有的快速和多样化,技术已然成为驱动社会进步的重要动力之一。作为技术从业者或者对技术感兴趣的读者,我们需要不断学习和掌握最新的技术趋势和解决方案,以应对不断变化的挑战。技术年货…

赴美生子月子机构要怎么选?

首先,了解月子机构的背景和信誉度非常重要。查看机构是否合法注册,是否有任何不良记录或投诉。通过与机构的交流和与其他妈妈.的口碑推.荐,了解机构的信誉和口碑。 要选择正规的赴美生子机构。这个很重要哦!正规的机构要有合法的执照&#x…

机器学习在什么场景下最常用-九五小庞

机器学习在多个场景中都有广泛的应用,下面是一些常见的应用场景: 自然语言处理(NLP):如语音识别、自动翻译、情感分析、垃圾邮件过滤等。数据挖掘和分析:如市场分析、用户画像、推荐系统、欺诈检测等。智能…

高级分布式系统-第15讲 分布式机器学习--分布式机器学习算法

分布式机器学习算法 按照通信步调,大致可以分为同步算法和异步算法两大类。 同步算法下,通信过程中有一个显式的全局同步状态,称之为同步屏障。当工作节点运行到同步屏障 ,就会进入等待状态,直到其工作节点均运行到同…

4.2 MATRIX MULTIPLICATION

矩阵-矩阵乘法,或简称矩阵乘法,在 i X j(i 行 by j 列)矩阵 M 和 j x k 矩阵 N 之间产生 i X k 矩阵P。矩阵乘法是基本线性代数子程序(BLAS)标准的重要组成部分(见第3章中的“线性代数函数”边栏…

原生IP代理如何帮助跨境电商店铺做谷歌广告投放业务的?

随着全球化的发展,越来越多的电商店铺开始拓展跨境业务,而谷歌广告作为全球最大的广告平台之一,为跨境电商店铺带来了巨大的收益和商机。 然而,由于谷歌广告的地域限制和审查机制,店铺很难直接进行投放业务&#xff0…

Photovoltaic cell storage element IC---AEM13920

0 Preface/Foreword 0.1 Functional Block Diagram(功能框图) 1 register introduction

【极光系列】SpringBoot集成Mybatis

【极光系列】SpringBoot集成Mybatis 一.gitee地址 浅夏的猫 shawsongyue 直接下载可用 https://gitee.com/shawsongyue/aurora.git 二.mysql安装教程 详细参考我的另外一遍博客: https://blog.csdn.net/weixin_40736233/article/details/135582926?spm1001.201…

抖店搬运同行产品截流后,还是不出单?优化主图和链接的方法如下

我是王路飞。 跟品、搬运同行店铺内的爆品上架到自己的店铺,公认是起店最快的方法。 因为有流量的产品,同行已经替你选出来了,你只需要上架去卖就可以了。 但很多新手采用跟品方法的时候,自己店铺还是没什么流量,也…

基于Python实现地标景点识别

目录 前言简介地标景点识别的背景 地标景点识别的原理卷积神经网络(CNN)的基本原理地标景点识别的工作流程 使用Python实现地标景点识别的步骤数据收集数据预处理构建卷积神经网络模型模型训练 参考文献 前言 简介 地标景点识别是一种基于计算机视觉技术…

为什么建筑工程行业要十分重视主数据管理?

业务背景 主数据管理是数字化技术不可或缺的一部分。 建筑行业数字化转型中,跨部门协作是非常重要的。主数据管理能够提供一个统一的数据平台,方便各个部门数据共享和交流,也可以实现人力、物资、设备等各种资源的集中管理和优化配置。 此外…

LeetCode刷题---逆波兰表达式求值

解题思路: 使用栈来解决该问题 首先定义一个栈Stack,接着对tokens数组进行遍历,如果当前元素是非数字字符串的话(运算符),就从栈中取出两个元素根据该运算符进行计算,将计算后的结果添加到栈中。如果当前元素是数字字符…

flink1.14.5使用CDH6.3.2的yarn提交作业

使用CDH6.3.2安装了hadoop集群,但是CDH不支持flink的安装,网上有CDH集成flink的文章,大都比较麻烦;但其实我们只需要把flink的作业提交到yarn集群即可,接下来以CDH yarn为基础,flink on yarn模式的配置步骤…