it-swarm.cn

版本中的数字通常代表什么(即v1.9.0.1)?

也许这是一个愚蠢的问题,但我总是假设每个数字描述的时期代表了软件的一个组成部分。如果这是真的,他们会代表不同的东西吗?我想开始为我的软件的不同版本分配版本,但我不确定它应该如何构建。我的软件有五个不同的组件。

113
BeachRunnerFred

在版本 1.9.0.1

  • 1 :主要修订版(新UI,许多新功能,概念变更等)

  • 9 :次要修订(可能是对搜索框的更改,添加了1个功能,修复了错误)

  • 0 :错误修复版本

  • 1 :内部版本号(如果使用的话) - 这就是为什么你看到使用类似2.0.4.2709之类的.NET框架的原因

你不会发现很多应用程序可以分为四个等级,3通常就足够了。

161
Dillie-O

语义版本规范

这是2.0版的摘要:

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

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

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

16
magyk

它可以是非常随意的,并且因产品而异。例如,对于Ubuntu发行版,8.04指的是2008.April

通常,最左侧(主要)数字表示主要版本,右侧越远,所涉及的变化越小。

13
rkabir
12
Søren Spelling Lund

数字可以像其他答案所描述的那样有用,但要考虑它们如何也可能毫无意义...... Sun,你知道Sun,Java:1.2,1.3,1.4 1.5或5然后6.在旧的Apple II版本中,数字是Meant一些东西。如今,人们正在放弃版本号,并使用愚蠢的名字,如“Feisty fig”(或类似的东西)和“hardy heron”,“europa”和“ganymede”。当然,这远没那么有用,因为在你停止更改程序之前,你将会用完木星的卫星,而且由于没有明显的顺序,你无法分辨出哪个更新。

8
stu

分数越多,释放越小。除此之外没有真正可靠的标准 - 根据项目维护者的决定,可能意味着不同的东西。

例如,WordPress沿着这些方向发展:

1.6 - > 2.0 - > 2.0.1 - > 2.0.2 - > 2.1 - > 2.1.1 - > 2.2 ......

1.6到2.0将是一个很大的发布 - 功能,界面更改,API的重大更改,一些1.6模板和插件的破坏等.2.0到2.0.1将是次要版本 - 可能修复安全漏洞。 2.0.2到2.1将是重要的发布 - 通常是新功能。

7
ceejayoz

数字可以表示您想要的任何内容,尽管它们通常与单个组件无关,而是与发布中的主要与次要与维护更改相关。

查看这些资源:
http://www.netbeans.org/community/guidelines/process.html
http://en.wikipedia.org/wiki/Release_engineering
http://www.freebsd.org/releases/6.0R/schedule.html

干杯

4
Alvaro Rodriguez

版本号通常不代表单独的组件。对于某些人/软件,这些数字相当随意。对于其他人,版本号字符串的不同部分确实代表不同的东西。例如,某些系统会在文件格式更改时增加部分版本号。所以V 1.2.1是与所有其他V 1.2版本(1.2.2,1.2.3等)兼容的文件格式,但与V 1.3不兼容。最终取决于您想要使用的方案。

3
user9385

从C#AssemblyInfo.cs文件中,您可以看到以下内容:

// Version information for an Assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
/ You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [Assembly: AssemblyVersion("1.0.*")]
2
Thomas Jespersen

release.major.minor.revision将是我的猜测。
但产品之间差别很大。

2
Fire Lancer

这取决于,但典型的表示是 major.minor.release.build

哪里:

  • major 是您的软件的主要发行版本,想想.NET 3.x.
  • minor 是您的软件的次要版本,想想.NET x.5
  • release 是该版本的发布,通常错误修正会增加这个
  • build 是一个数字,表示您已执行的构建数。

例如,1.9.0.1,意味着它是你的软件的1.9版,遵循1.8和1.7等,其中1.7,1.8和1.9在某种程度上通常会添加少量的新功能以及错误修正。因为它是x.x.0.x,它是1.9的初始版本,它是该版本的第一个版本。

您还可以在 维基百科上找到关于该主题的文章的好信息

2

Major.Minor.Bugs

(或者有些变化)

错误通常是错误修复,没有新功能。

Minor是一些添加新功能的更改,但不会以任何主要方式更改程序。

主要是程序的变化,要么破坏旧的功能,要么是如此之大,以至于它以某种方式改变了用户应该如何使用该程序。

2
emeryc

每个人都选择他们想要用这些数字做什么。我一直想把它发布给a.b.c,因为它反正很傻。话虽这么说,我在过去25多年的发展中看到的往往是这样的。假设你的版本号是1.2.3。

“1”表示“主要”修订。通常这是初始版本,大型功能集更改或重写代码的重要部分。确定功能集并至少部分实现后,转到下一个数字。

“2”表示系列中的版本。通常我们会使用这个位置来捕获在上一个主要版本中没有出现的功能。这个位置(2)几乎总是表示功能添加,通常有错误修复。

大多数商店中的“3”表示补丁发布/错误修复。几乎从来没有,至少在商业方面,这表明一个重要的功能增加。如果功能出现在位置3,那么可能是因为有人在我们知道我们必须执行错误修复发布之前检查了一些内容。

超越“3”的位置?我不知道为什么人们会这样做,它会让人更加困惑。

值得注意的是,那里的一些OSS抛出了所有这些。例如,Trac版本10实际上是0.10.X.X.我认为OSS世界中的很多人要么缺乏信心,要么就是不想宣布他们已经完成了重大发布。

1
mclain

人们并不总是认识到版本号如2.1,2.0.1或2.10之间的细微差别 - 向技术支持人员询问他们有多少次遇到此问题。开发人员注重细节,熟悉层次结构,因此这对我们来说是一个盲点。

如果可能,请向客户公开更简单的版本号。

1
Mark Ransom

我认为主要版本的范例.minor release.bug修复很常见。

在某些企业支持合同中,存在与指定特定版本的方式相关的$$$(或违反合同责任)。例如,合同可能会在一段时间内让客户获得一些主要版本,或者承诺在一段时间内将有少于x个次要版本,或者支持将继续为这么多版本提供支持版本。当然,无论合同中有多少单词用于解释主要版本与次要版本的对比,它总是主观的,并且总会有灰色区域 - 导致软件供应商可以将系统游戏到打败了这样的合同条款。

1
Will M

对于库,版本号会告诉您两个版本之间 兼容级别 ,因此升级有多困难。

错误修复版本需要保留二进制,源和序列化兼容性。

次要版本对不同的项目意味着不同的东西,但通常他们不需要保持源兼容性。

主要版本号可以打破所有三种形式。

我写了更多关于理由 这里

1
Craig P. Motlin

Major.minor.point.build通常。主要和次要是不言自明的,点是一些小错误修正的发布,而构建只是一个构建标识符。

1
Cody Brocious

通常是:

MajorVersion.MinorVersion.Revision.Build

1
Jason Punyon

对。主要版本添加了大的新功能,可能会破坏兼容性或具有显着不同的依赖性等。

次要版本也增加了功能,但它们是较小的,有时是从beta主要版本中删除的移植版本。

如果有第三个版本号组件,通常用于重要的错误修正和安全修复。如果有更多,它真的很大程度上取决于产品,很难给出一般答案。

1
Paweł Hajdan

第一个数字通常称为主要版本号。它基本上用于表示构建之间的重大更改(即,当您添加许多新功能时,您会增加主要版本)。具有不同主要版本的组件可能与同一产品不兼容。

下一个数字是次要版本号。它可以代表一些新功能,或许多错误修复或小型架构更改。来自同一产品的组件因次要版本号而不同可能会或可能不会一起工作,也可能不会。

下一个通常称为内部版本号。这可以每天增加,或者每个“已发布”构建,或者根据每个构建增加。两个组件之间可能只有很小的差异,这些组件只有内部版本号不同,通常可以很好地协同工作。

最终的数字通常是修订号。通常情况下,这是由自动构建过程使用,或者当您为测试制作“一次性”丢弃构建时。

当你增加你的版本时,你的版本数量取决于你,但它们应该总是 增量 保持不变 。您可以让所有组件共享相同的版本号,或仅增加已更改组件的版本号。

0
Bob King

复杂软件的版本号代表整个软件包,并且与部件的版本号无关。 Gizmo版本3.2.5可能包含Foo版本1.2.0和Bar版本9.5.4。

创建版本号时,请按如下方式使用它们:

  1. 第一个数字是主要版本。如果您对用户界面进行了重大更改或需要破坏现有界面(以便您的用户必须更改其界面代码),您应该转到新的主版本。

  2. 第二个数字应表示已添加新功能或内部工作方式不同。 (例如,Oracle数据库可能决定使用不同的策略来检索数据,使大多数事情更快,而且速度更慢。)现有接口应该继续工作,用户界面应该是可识别的。

  3. 进一步的版本编号取决于编写软件的人 - Oracle使用五个(!)组,即。 Oracle版本类似于10.1.3.0.5。从第三组开始,您应该只介绍错误修正或功能上的细微更改。

0
Sten Vesterli
0
Sijin

对于major.minor来说,变化较小的那个将是前两个,之后它可以是任何东西,从构建,修订,发布到任何自定义算法(如某些MS产品)

0
BlackTigerX

这是我们使用的:

  1. 第一个数字=整个系统时代。每两年更改一次,通常代表技术或客户端功能或两者的根本变化。
  2. 第二个数字=数据库模式修订。此数字的增量需要数据库迁移,因此是一个重大更改(或系统复制,因此更改数据库结构需要仔细升级过程)。如果第一个数字发生变化,则重置为0。
  3. 第三个数字=仅软件更改。这通常可以在客户端基础上实现,因为数据库模式未更改。如果第二个数字发生变化,则重置为零。
  4. Subversion版本号。我们使用TortoiseSVN工具在构建时自动填充它。此数字永远不会重置,但会不断增加。使用这个我们总是可以重新创建任何版本。

这个系统很好地为我们服务,因为每个数字都有明确而重要的功能。我见过其他团队正在努力解决主要的数字/次要问题(主要的变化有多大),而且我没有看到这样的好处。如果您不需要跟踪数据库修订版,只需转到3位或2位数的版本号,让生活更轻松!

0
Ewan Makepeace

在版本v1.9.0.1中: 这是显式版本控制方案 当您不​​想使用预发布版本的名称或使用-alpha,-beta构建时使用。

1:可能破坏向后兼容性的主要版本

9:添加新功能以支持您的应用程序以及与以前版本的向后兼容性。

0:一些小错误修复

1:内部编号(预发布编号)

但是现在,你不会找到这样的版本控制方案。请参考语义版本控制[semver2.0] https://semver.org/

0
Mehul Sancheti

每个组织/团体都有自己的标准。重要的是你坚持你选择的任何符号,否则你的客户会感到困惑。说过我通常使用3个数字:

x.yz.bbbbb。其中:x:是主要版本(主要新功能)y:是次要版本号(小的新功能,没有UI更改的小改进)z:是服务包(基本上与xy相同,但有一些错误修复bbbb:是内置编号,只有“关于框”才能真正显示客户支持的其他详细信息.bbbb是免费格式,每个产品都可以使用它自己。

0
Vasco Duarte

主要,次要,补丁,构建,安全补丁等的组合。

前两个是主要和次要 - 其余的将取决于项目,公司,有时社区。在像FreeBSD这样的操作系统中,你将有1.9.0.1_number代表一个安全补丁。

0
Loren Segal

取决于语言,例如Delphi和C#有不同的含义。

通常,前两个数字表示主要版本和次要版本,即第一个真实版本为1.0,一些重要错误修正版本为1.1,小型新版本为2.0,大型新功能版本为2.0。

第三个数字可以指“非常小”的版本或修订版。例如,1.0.1只是1.0.0的一个非常小的错误修正。但是它也可以携带源代码管理系统中的版本号,或者随着每次构建而递增的递增编号。或者是一个日期戳。

更多细节 这里 。 “正式”,在.net中,4个数字是“Major.Minor.Build.Revision”,而在Delphi中有“Major.Minor.Release.Build”。我使用“Major.Minor.ReallyMinor.SubversionRev”进行版本控制。

0
Michael Stum

通常,number的格式为version.major.minor.hotfix,而不是单个内部组件。所以v1.9.0.1将是版本1,主要版本9(v1),次要版本(v1.9)0,热修复1(v1.9.0)。

0
Scott Bevington