首页 > 其他分享 >软件版本号详解

软件版本号详解

时间:2024-11-28 12:01:37浏览次数:11  
标签:向下兼容 版本号 递增 详解 版本 序号 软件

软件版本号长什么样呢?

图片

上面这张截图是我们常用的手机APP,红色线框框出来的就是APP的版本号,大厂的版本号还是比较规范的。

图片

这张图是本人主力开发语言Golang的下载页面,截图上红色线框框出来的就是Golang的版本号。

版本号对于从事软件开发工作的朋友,并不陌生。

对于从事和软件工作无关的朋友,可以把软件版本号看作是商品的型号。

其实软件版本号就是商品的型号。
-- 海贼.王路飞

那么软件版本号为什么长这样呢?

我们常见的版本号命名规则为:

[name].x.y.z-[state]

  • name 为可选段,一般为v,表示Version;

  • x.y.z为各版本的序号,一般都会遵循语义化版本 2.0.0   (https://semver.org/lang/zh-CN/)
    实际上基于此规范,name段不会出现;

  • state 可选段,用来表示当前软件的状态。例如:b 表示bate版,即测试版。

序号段核心规则

序号段就是 x.y.z 这一段,x、y、z为非负整数。

序号

说明

x

主版本号(major)
无法向下兼容时,需要递增

y

次版本号(minor)
新增新的特性时,需要递增

z

修订版本号(patch)
修复问题时,需要递增

0.y.z 表示当前软件处于研发阶段,软件并不稳定

1.0.0 表示当前软件为初始的稳定版,后续的更新都基于此版本

对于系统基本的软件,一般在版本号中会标明适用的操作系统名称,例如上面截图中的Golang的版本命名。

版本状态段规则

标识

说明

含义

α 或 a

alpha 版

内测版,Bug多

β 或 b

beta 版

公测版,有缺陷

γ 或 g

Gamma 版

成熟测试版,接近发行版

rc

Release
Candidate 版

预发布版,有时会进一步细分:rc1、rc2

Demo

演示版

演示用,不做升级

SP

SP1

service pack,升级包

Trial

试用版

试用版

Unregistered

未注册版

没有注册的版本,功能上有限制,这个大家懂的

Lite

精简版

只包含核心功能

enhance

增强版

增强版

free

免费版

自由使用的版本

release

发行版

有时间限制

upgrade

升级版

有功能增强或者修复了Bug

Retail

零售版

单独发售

Cardware

共享版

使用公用许可证

实际上大部分软件版本号命名都遵守上述规则。

总结

软件版本号格式通常为:x.y.z

  • x 主版本号,不向下兼容时递增;

  • y 次版本号,向下兼容,有新增特性时递增;

  • z 修订版本号,向下兼容,修复问题时递增;

  • a、b、rc 分别表示当前软件的发行状态。


如果您觉得本文对您有用,建议收藏;

如果您觉得对您的朋友有帮助,请分享给他们;

如果您能点个赞,那就是对作者最大的支持。

更多精彩内容发布于公众号:代码乾坤 (CoderLand)

标签:向下兼容,版本号,递增,详解,版本,序号,软件
From: https://blog.csdn.net/u011942813/article/details/144107466

相关文章

  • 从软件保护的角度看流行的编程语言
    我们在开发一款软件的起始阶段,技术负责人要做的第一件事大概就是做技术选型。技术选型件事是一个综合性的考量,需要考虑的因素很多。一个合适的技术选型对软件的后期发展有着很大的影响。本文就站在一个软件保护的角度,来对比一下当下流行的编程语言。“保护”这个词,我们暂时......
  • 公钥,私钥和数字签名详解
    1.什么是加密加密就是对明文数据按某种特殊算法进行处理,使其成为不可读的一段代码,通常称为“密文“, 密文通过”密钥“解密后还原出原来的明文,通过这样的途径可以达到保护数据不被非法人窃取、阅读的目的。加密方法:AESRSASM4MD5:实际上是对数据进行有损压缩,无论数据有多......
  • 预处理详解
    1.预定义符号2.#define定义常量3.#define定义宏4.带有副作⽤的宏参数5.宏替换的规则6.宏函数的对⽐7.#和##8.命名约定9.#undef10.命令⾏定义11.条件编译12.头⽂件的包含13.其他预处理指令1.预定义符号C语言设置了一些预定义的符号,可以直接使用,预定......
  • BERT口语化详解
    [Autho] 余胜辉1.Bert模型简介        BERT是谷歌于2018年提出的预训练语言模型,它使用了Transformer编码器部分。2.Bert模型输入处理     以bert-base为例,模型包含12个层,12个注意力头,隐藏层尺寸为768,模型大小约为110MB,输入长度为256。这使得BERT模型......
  • ThreeJs-04详解材质与纹理
    一.matcap材质这个材质不会受到光照影响,但是如果图片本身有光就可以一直渲染这个图片本来的样子,用来将一个图片纹理渲染到物体上的材质代码实现加载模型后,开启纹理渲染,并把它的材质变为这个材质,并且贴上纹理图二.Lambert材质Lambert网格材质是Three.js中最基本和常用的材......
  • 数据结构初阶终——七大排序法(堆排序,快速排序,归并排序,希尔排序,冒泡排序,选择排序,插入
    排序1.插入排序2.希尔排序3.冒泡排序4.选择排序(双头排序优化版)5.堆排序6.快速排序1).双指针法2).前后指针法3).非递归法7.归并排序1).递归版本(递归的回退就是归并)2).非递归版本(迭代版本)计算机执行的最多的操作之一就有排序,排序是一项极其重要的技能接下来......
  • 编程之路,从0开始:预处理详解(完结篇)
            Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!我的博客:<但凡.我的专栏:编程之路        这一篇预处理详解是我们C语言基础内容学习的最后一篇,也是我们的专栏:编程之路的最后一篇!从今日起,我将不定期更新新的内容,开始新的章节......
  • SQL盲注攻击详解及防御措施
    文章目录基于布尔的盲注工作原理示例代码防御措施基于时间的盲注工作原理示例代码防御措施其他防御措施输入验证错误处理使用WAF(Web应用防火墙)基于布尔的盲注工作原理基于布尔的盲注通过构造SQL查询来判断数据库的响应是否满足某个条件。攻击者通过观察应用程......
  • 小白必看详解循环语句,看完必会!
    循环语句循环的概念重复的执行一段代码,避免死循环,提高效率(时间复杂度-关注和 空间复杂度-不关注)循环包含三大语句:while语句、dowhile语句、for语句循环的三要素:初始值(初始的变量)迭代量(基于初始的改变)条件(基于初始的判断)while语句while(条件表达式(返回true和false......
  • 详解 PyTorch 中的 DataLoader:功能、实现及应用示例
    详解PyTorch中的DataLoader:功能、实现及应用示例在PyTorch框架中,Dataloader是一个非常重要的类,用于高效地加载和处理来自Dataset的数据。Dataloader允许批量加载数据,支持多线程/多进程加载,并可进行数据混洗和采样,极大地提高了模型训练的效率和灵活性。Dataloader......