版本号背后的含义(即 0.1、0.10.10、1 等)

Meaning behind version numbers (i.e. 0.1, 0.10.10, 1, etc)

版本是如何编号的?进入下一个版本、增量等背后的正确想法是什么?

例如,我经常看到 v0.1、v0.2、v0.34567 等。我认为这些是处于测试阶段的软件,还没有完成第一个版本。

但是也有很多软件是v0.10.11等,它们是如何工作的?

没有特定的标准 - 任何人都可以遵循任何方案(或没有方案)。这取决于公司政策、开发标准或您所遵循的任何准则。

有一些流行的标准。我们尝试遵循语义版本控制标准。基本租户包括(引用):

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backwards-compatible manner
  3. PATCH version when you make backwards-compatible bug fixes.

链接:

存在相互竞争的标准,这让我非常难过,尤其是在 git 流行的世界里。

如前所述,SymVer 有很大帮助,但许多流行的软件并不使用它。

不幸的是,这在处理发行版时没有多大帮助,发行版将补丁应用到特定版本的软件,有效地改变了它的版本。

我所见过的最接近 "proper" 的是由 NixOS 完成的。他们软件的每个版本都经过哈希处理,应用的所有补丁也是如此,每个最终结果都有不同的哈希值,在 Git.

中显示任何更改

生成的输出也将不同,与其他输出不同。

在采用该方法之前,它是免费的,版本控制不是一致的。