我们正在尝试确定一种对彼此依赖的软件组件进行版本编号的好方法。
让我们更具体一点:
软件组件A是在嵌入式设备上运行的固件,而组件B是其在普通PC(Linux / Windows计算机)上的驱动程序。他们正在使用自定义协议相互通信。由于我们的产品还面向开发人员,因此我们将提供两个组件的稳定和不稳定(实验)版本(固件是封闭源代码,而驱动程序是开放源代码)。我们最大的困难是如何处理通信协议中的API更改。
在驱动程序中实施兼容性检查时-它检查固件版本是否与驱动程序版本兼容-我们开始讨论版本编号的多种方式。
我们提出了一个解决方案,但我们也想重新发明轮子。这就是为什么我希望从程序员/软件开发人员社区获得一些反馈的原因,因为我们认为这是一个普遍的问题。
所以这是我们的解决方案:
我们计划遵循广泛使用的major.minor.patch版本编号,并对稳定/不稳定版本使用偶/奇次编号。如果我们在API中引入更改,则会增加次要编号。
此约定将导致以下示例情况:
当前稳定分支为1.2.1,不稳定分支为1.3.7。现在,针对不稳定的新补丁更改了API,这将导致新的不稳定版本号变为1.5.0。一旦不稳定分支被认为是稳定的,例如在1.5.3中,我们将其发布为1.4.0。
对于以下任何相关问题的答案,我都会感到高兴:
- 您可以提出解决上述问题的最佳做法吗?
- 您认为我们的“习惯”约定好吗?
- 您将对上述约定进行哪些更改?