我有一种以两种格式发货的产品:单独的包装和组合的单个包装。单个包是通过编程方式从各个包生成的。各个包语义版本是手动确定和设置的。
如何根据每个单独包的语义版本计算单个包的语义版本,并遵守各个包的语义版本控制规则?
出于讨论目的,假设我有三个单独的包:
a - 1.0.3
b - 2.1.0
c - 1.1.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 是不明确的。您必须想出一些复杂的数学公式,以确保各个版本始终与最终包版本形成一对一的映射。
关于semantic-versioning - 如何组合语义版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522506/