不重置版本号的最后一位是否有意义

Does it make sense not to reset last digit in version number

我们正在更改我们的中间件 (MW) 软件的版本控制和依赖系统,我们正在考虑这样的事情:

a.b.c.d

a - 主要版本

b - 向后兼容性中断

c - 新功能

d - 错误修复

但有一点不同,因为由于软件的大小和缓慢的网络,我们必须将发送给客户的包数量保持在最低限度。

所以这个想法是只在向后兼容性更改时重置错误修复编号。使用这个逻辑,我们可以创建一个自动系统,如果客户端已经安装的版本有任何错误更改,并且它符合新前端 (FE) 的要求,它只会生成一个新包。

为了更好地展示这一切场景,这里有几个例子:

递增逻辑

需要包决策逻辑

虽然这是一个 non-standard 版本控制逻辑,但是你们看到这个逻辑有什么问题吗?

[major].[minor].[release].[build] (widely accepted pattern from this post: )

偏离模式

您这样做有特定的原因,所以我看不出有任何问题。 (你的具体逻辑对我来说也很好。)

关于不重置最后一个号码

这真的不是问题。在上面链接的答案中,您甚至可以看到使用 SVN 修订版作为建议使用的编号。

只要您有整个公司都理解并遵守的内部逻辑,跳过版本号(或使用复杂的版本编号)是没有问题的。 (如果事情没有改变......微软将跳过其 windows 系统的第 9 版。)

[major].[minor].[release].[build] 被很多公司使用。

在我们公司,我们在 [build] 之外添加了一个名为 [private] 的额外功能。
[主要].[次要].[发布].[构建].[私有]

在我们的逻辑中,[private] 用于错误测试的内部排序。 (我们故意破坏我们的代码,以便我们可以测试错误。)但是在发布代码之前,[private] 必须设置回零。因此,除非版本号末尾有一个 .0,否则不会有任何代码离开办公室。它提醒程序员删除(或注释掉)他们的测试代码它提醒测试人员不要发送仅用于测试的代码。

早在 80 年代,我还阅读了一些有关版本编号心理学的内容。有些公司会直接跳到 [次要] 版本 3,只是为了让他们看起来好像做了比实际做的更多的测试。他们还避免超过 7,因为这让他们看起来像是在修复太多错误,并且容易出现严重错误的代码。这种对客户或客户的心理感知可能相当强烈,并且可能成为程序员(他们往往是正确的字面主义者)和营销人员(他们将逻辑视为经过深思熟虑后的一些蓬松)之间的巨大争论。

考虑到这一点,回答你的问题:你的逻辑很棒......现在把它卖给你的营销部门。 (或者更好的是......不要把它卖给他们,只是实施它并希望他们不会来敲你的门,隔间或藏身之处。)

祝您设计顺利。 :)