版本号名称规范的常用或类别是啥?

Posted

技术标签:

【中文标题】版本号名称规范的常用或类别是啥?【英文标题】:What is the common used or category of version number name specification?版本号名称规范的常用或类别是什么? 【发布时间】:2015-02-13 06:36:15 【问题描述】:

软件的版本号类似于 2.0.0.1 每个数字的规则是什么? 什么情况下数字会加一?

【问题讨论】:

【参考方案1】:

Semantic versioning 经常被使用。我会先读那个。大多数采用某种形式,例如:

<major>.<minor>.<patch>

<major>.<minor>.<patch>-<qualifier>-<build number>

包含基本规则的简短摘要:

给定版本号 MAJOR.MINOR.PATCH,增加:

当您进行不兼容的 API 更改时的主要版本, 以向后兼容的方式添加功能时的次要版本,并且 当您进行向后兼容的错误修复时的 PATCH 版本。

预发布和构建元数据的附加标签可用作 MAJOR.MINOR.PATCH 格式的扩展。

然后——就像任何事情一样——讨论一些细节。这不是数学。营销部门通常涉及主要版本与次要版本。无论如何,这个页面可以很好地阅读: What version numbering scheme to use?

【讨论】:

【参考方案2】:

有一个名为 Semantic Versioning 的网络文档试图将其标准化,但实际上从来没有一种方法可以做到这一点。

如果您有发布周期,我认为增加主要/次要部分以反映这一点是合理的,但这种意义上的版本控制可能已成为过去。

今天,我发现(经常如此)源代码控制机制用于在代码库上标记版本号。

SO 过去只有一个修订号,但后来采用了类似rev 2015.2.12.2293 的版本控制方案,第一部分显然是日期,最后一个数字很可能是内部版本号。这只是一个递增的整数,用于唯一标识您拥有的构建。这要求您拥有构建最终版本的构建服务器,但是当您这样做时,您将能够跟踪/跟踪您生成的所有内容,这就是我们使用版本的原因。

另一种方法是将 Git 提交 SHA-1 构建到代码中。它将允许您调出用于构建应用程序的确切状态(假设所有内容都驻留在 Git 存储库中)。虽然 SHA-1 对于版本来说有点长,所以您可以使用标签或一些外部数据库来跟踪哪个 SHA-1 是哪个内部版本号。

【讨论】:

【参考方案3】:

通常只使用三个数字 Major.Minor.Revision/Patch。

一般...

Major = 当大量新功能添加时,底层核心发生了足够大的变化,导致以前版本的软件无法与新版本的输出文件完全兼容,或者 UI 发生重大变化,等等

Minor = 添加新的小功能或重大修复时。

Revision = 发布错误修复,但没有新功能。

【讨论】:

以上是关于版本号名称规范的常用或类别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

android获取当前软件版本号号和版本号名称

ANDROID版本号号和版本号名称的重要性介绍

软件版本号规范与命名原则(node.js与package.json依赖包规范)

linux都有哪些版本?它们各自的特点是啥?

Android获取系统(ROM)类别及版本号

公众号运营指引