应用程序版本 1.2.1 和 2.3.5 之间的主要区别是什么

What is the main differences between versions of the app 1.2.1 and 2.3.5

我试着从wiki Software Versioning control那里学习,但我不是很了解。我知道最后的数字意味着修复了很多错误,我已经从 wiki 上得到了一些东西。 但是应用程序版本(例如 1.2.1 和 2.4.5)之间的主要区别是什么?有没有快速解释的来源?当我在 Play 商店更新我的应用程序时,我应该如何选择版本?如果我更改 API,我应该将版本号的最后一位数字从 1.1.2 更改为 1.1.3,还是必须将第一个数字(如 1.1.2)更​​改为 2.1.2? 谢谢

语义版本控制(Major.Minor.Build)

答案取决于开发团队对版本控制方案的选择。根据我的经验,最常见的方案是 Semantic Versioning 方案,其中三个数字具有附加的语义值。

What is the main difference between the versions of app, like 1.2.1 and 2.4.5?

这表明较新的软件 2.4.5 有重大更改,可能会给您或使用该代码的任何软件带来问题。

If I change API should I change the last digits of version numbers from 1.1.2 to 1.1.3 or I must change the first number like 1.1.2 to the 2.1.2?

在这种情况下,如果更改有破坏使用 API 的其他代码的风险,您应该选择版本 2.1.2,如果您的更改包括添加的内容,您应该选择 1.1.2到 API 但不会带走 API.

的功能或界面

When I update my app on play store, how should I choose version?

选择对您或您的团队有意义的内容。有时如果它由平台控制,你可能无法选择,但倾向于符合你所处的环境。意思是遵循你正在开发的平台的版本控制约定。

主要版本

序列中的第一个数字 (1.x.x) 是主要版本,这在语义上意味着该软件具有重大更改,可能会影响依赖它的任何其他软件。例如,您可以使用 API 将升级版本中的 URI 路径从 1.x.x 完全更改为 2.x.x

次要版本

次要版本是对代码的更改,不反映重大更改,但足以保证增加版本。更常见的情况是,这不包括对添加功能但不破坏它的代码的添加。因此,如果您向现有 API 添加一个新端点并保持所有其他端点相同,则 API 的版本可以从 x.1.x 增加到 x.2.x

Bug/Build版本

方案中的最后一个数字代表 bug/build 版本,具体取决于您希望如何看待它。在像我这样的团队中,我们使用第三个数字来自动增加每次推送到我们的 CI/CD 管道的版本,将版本工件推送到我们的存储库。这也可用于应用程序生命周期中出现的错误修复和热修复。例如,x.x.1x.x.2.

留下思念

这不是唯一的版本控制方案,也不是最后一个被发明的方案。不过,这一方案似乎在业界颇具吸引力,值得借鉴。此外,当您了解版本号背后的含义并提交与之一致的标准时,它会在您的 CI/CD 管道上启用一些很酷的自动化技巧。 (Conventional Commits)