我如何组合语义版本?

问题描述 投票:0回答:2

我的产品有两种格式:单个包装和单个包装。单个包以编程方式从各个包生成。手动确定和设置各个包语义版本。

如何基于尊重各个包的语义版本控制规则的每个包的语义版本来计算单个包的语义版本?

出于讨论目的,假设我有三个单独的包:

a - 1.0.3
b - 2.1.0
c - 1.1.1

我如何计算单包的版本?

semantic-versioning
2个回答
1
投票

如果要为每个三个组合创建唯一版本,最简单的方法是显式显示每个组件:

a - 1.0.3
b - 2.1.0
c - 1.1.1

mainprog-a1.0.3-b2.1.0-c1.1.1

这有助于您识别构成整体的每个组件。这有点长,所以替代你可以哈希:

sha256(a1.0.3-b2.1.0-c1.1.1)[1..10] = 6b5da1e87f

您希望将每个总和的表存储到创建它的基本组件中,这样您就可以轻松查找组件。或者你可以找到一个可逆的哈希算法来代替使用。

你当然可以在其他答案中总结数字:

a - 1.0.3
b - 2.1.0
c - 1.1.1

result - (1+2+1).(0+1+1).(3+0+1)
result - 4.2.4

但是在这里,三个组件制作4.2.4是模棱两可的。您必须提出一些复杂的数学公式,以确保单个版本总是加起来与最终包版本的一对一映射。


0
投票

数字会变得非常大,但一种解决方案是对各个组件求和:

a - 1.0.3
b - 2.1.0
c - 1.1.1

result - (1+2+1).(0+1+1).(3+0+1)
result - 4.2.4
© www.soinside.com 2019 - 2024. All rights reserved.