版本号背后的含义(即 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:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards-compatible manner
- PATCH version when you make backwards-compatible bug fixes.
链接:
存在相互竞争的标准,这让我非常难过,尤其是在 git 流行的世界里。
如前所述,SymVer 有很大帮助,但许多流行的软件并不使用它。
不幸的是,这在处理发行版时没有多大帮助,发行版将补丁应用到特定版本的软件,有效地改变了它的版本。
我所见过的最接近 "proper" 的是由 NixOS 完成的。他们软件的每个版本都经过哈希处理,应用的所有补丁也是如此,每个最终结果都有不同的哈希值,在 Git.
中显示任何更改
生成的输出也将不同,与其他输出不同。
在采用该方法之前,它是免费的,版本控制不是一致的。
版本是如何编号的?进入下一个版本、增量等背后的正确想法是什么?
例如,我经常看到 v0.1、v0.2、v0.34567 等。我认为这些是处于测试阶段的软件,还没有完成第一个版本。
但是也有很多软件是v0.10.11等,它们是如何工作的?
没有特定的标准 - 任何人都可以遵循任何方案(或没有方案)。这取决于公司政策、开发标准或您所遵循的任何准则。
有一些流行的标准。我们尝试遵循语义版本控制标准。基本租户包括(引用):
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards-compatible manner
- PATCH version when you make backwards-compatible bug fixes.
链接:
存在相互竞争的标准,这让我非常难过,尤其是在 git 流行的世界里。
如前所述,SymVer 有很大帮助,但许多流行的软件并不使用它。
不幸的是,这在处理发行版时没有多大帮助,发行版将补丁应用到特定版本的软件,有效地改变了它的版本。
我所见过的最接近 "proper" 的是由 NixOS 完成的。他们软件的每个版本都经过哈希处理,应用的所有补丁也是如此,每个最终结果都有不同的哈希值,在 Git.
中显示任何更改生成的输出也将不同,与其他输出不同。
在采用该方法之前,它是免费的,版本控制不是一致的。