什么时候应该增加版本号?


23

我不是在学校学习编程的,也不以(专业)开发人员的身份工作,因此很多基本知识对我来说还不太清楚。这个问题试图澄清其中之一。


现在,假设我有问题#1#2并且#3在我的“问题跟踪器”中已设置要针对版本进行更正/增强,1.0.0并且最后一个(稳定)版本是0.9.0

1.0.0什么时候应该增加版本?当a)关闭了上面列出的问题之一,或b)当与版本相关的所有问题1.0都结束了?

哪一种是正确的方法?通过正确的方式,我指的是当前行业中使用的东西。



1
您也可以在下一个版本中包含所有这三个问题
马丁·皮特斯

是的,我已经在使用SemVer了,所有三个问题都将在下一个发行版中提出:)
ahmed

我编辑了这个问题以避免混淆。
ahmed

Answers:


14

我可以告诉你我在工作中如何做。

我们有一个持续集成服务器,用于构建,测试,标记和输出版本化的软件包。如果上一个步骤成功%100,我们将进入下一步骤。

我们的版本如下所示: <主要版本>。<次要版本>。<内部版本号>

  • 每个没有完成错误修复或功能增强的成功构建都会增加内部版本号。
  • 每次成功构建并完成错误修复或功能增强,都会增加次要版本。这会通过使用特定格式的提交消息的存在自动检测到。该提交消息也会自动被拉入项目ChangeLog。
  • 当我们有不向后兼容的更改,从头开始重写或根据具体情况做出其他原因时,将手动完成每个主要版本的增量。

但是,如果要在<次要版本>上完成一系列增强功能,例如1.0.0。您是否需要做所有这些增强才能说“ OK!现在是1.0.0版”,或者在完成第一个增强后立即增加到1.0.0版?
艾哈迈德

@ahmed我已经看到了1.4.2“此套修复程序,以及当时可以完成的所有其他事情”的方法……我还看到1.4.2了“将在此日期发布任何准备好的东西”。这取决于您的发布周期。

5
@ahmed如果从0.xx到1.xx的标准是已设置的功能/修复程序的完成,那么我将在它们全部完成后才递增。注意:我们根本不会那样工作。我们不针对某个版本,也不决定其中包含哪些修复程序。我们以修复为目标。我们获得的版本仅用于跟踪和识别,而不是目标。
Dietbuddha

这正是我想知道的:)
艾哈迈德(Ahmed)2013年

21

版本号仅与发行版相关,因为它们是外部用户识别软件特定版本的一种方式。如果您只是忙于进行开发而不是不单独发布每个修订,则不必担心增加每个修订的发行版数。它与外部用户无关,并且通过额外的版本簿记浪费您自己的时间。


这是否也适用于Web开发,在Web开发中,发行版可以是小错误的简单修补程序?
ahmed

4
您在发布此修补程序之前先进行质量检查吗?这是一个发布。如果不是完整产品,则为修补程序。
Peter K.

@ahmed在这种情况下,版本号对于用户来说通常是不可见的,因此就毫无意义(发行版号主要用于市场营销和技术支持,而这两个版本均不适用于许多Web应用程序)。仅使用提交ID就足够了。如果您坚持使用版本号,是的,我可能会增加补丁级别。
阿蒙

我在这里学到很多东西:p因此,总而言之:我不需要版本号,因为提交ID足够了,因为所有用户都将使用最新版本。
ahmed

2
尽管所有用户都使用同一版本,但是当您查看缺陷报告时,该版本将继续进行。您仍然需要一种将报表绑定到特定软件版本的方法(日期/时间可能就足够了)。
mattnz

2

对于连续部署的Web应用程序,我们倾向于使用symver预先构建版本号和构建版本号尾部,即:2.5.3.4328其中4328来自连续集成系统。人们普遍期望数字会按有意的步骤进行更改,但是内部版本号是真正的唯一ID。

这里似乎正在做的事情是捕获部署日期和相关的svn内部版本号:

        <div id="svnrev">
            rev 2013.10.21.1078
        </div>

物有所值。


0

其他答案已经很不错了,所以我只会在它们之上加上。如果您的软件未发布,并且您实际上并不需要公开版本(非公开版本是您的VCS),则在版本末尾附加关键字“ SNAPSHOT ”。某些系统(尤其是在依赖项管理中)将快照与已发布版本区别对待,因为它们比较快照的更改日期而不是版本号。因此,如果您在软件包存储库中从上午8点开始有1.0.0-SNAPSHOT v,而本地依赖项下载器从上午7点开始具有相同版本,那么它将从存储库中下载更新的版本。

如上所述,您的私有版本控制是由您的版本控制系统(git,svn等)提供的。


0

关于版本化理论的说法已经足够多了,这是另一个观点。

我什么时候应该增加到1.0.0版本?

我将集中回答主要版本号的更改。

我的回答是:基本上,当您准备就绪时。从0.9升级到1.0是一件大事,因为公众的看法是您将要从Beta产品过渡到正式版本。

(我将假定这是公司的商业产品)。

从0.9到1.0之前的几个问题。

您的组织有时间通知所有当前客户吗?办一个派对。获得很多支持请求。客户经理销售您的产品?等等

是的,我将版本管理视为一种营销工具,如果环顾四周,您会发现这基本上是行业标准。

我们的公司从2.x版本升级到3.0,并举办了一场盛大的聚会,引起了很多议论,因此吸引了许多新客户。除了一些界面更新之外,版本之间的差异很小。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.