一些开源项目制作组合版本,其中每个包(库)的版本号增加到相同版本。
Java中的示例是:
这意味着某些软件包可能会获得新版本,即使它们没有更改(也不是它们的依赖项)。我不认为这违反了语义版本。
我看到的好处是:
缺点:
单版本的一种替代方法是使用BOM(物料清单)。存在不同的BOM表概念:
dependencyManagement
部分)BOM允许声明库版本的哪些配置(组合)已经一起测试,并允许单独的用户组使用相同的配置,帮助进行错误报告和可重复性。
但是,并非所有软件分发和构建系统都同样支持BOM概念。