semantic-versioning - 如何组合语义版本?
问题描述
我有一个产品以两种格式发货:单独的包装和组合的单一包装。单个包是从各个包以编程方式生成的。单独的包语义版本是手动确定和设置的。
如何根据每个单独包的语义版本计算单个包的语义版本,并尊重各个包的语义版本控制规则?
出于讨论目的,假设我有三个单独的包:
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 是模棱两可的。您必须想出一些复杂的数学公式,以确保各个版本始终添加到最终包版本的 1 对 1 映射。
推荐阅读
- python - Is there some way in Python where you can have a specific line of code continuing to the next?
- json - 单击每个字段时如何显示和隐藏离子卡?
- html - My HTML5 video tag isn't working and I cant figure out why
- objective-c - How to get Doxygen 1.8 features in Xcode
- javascript - Ionic React Scss 样式未加载
- stripe-payments - Stripe:如果您使用 Stripe 的新托管 Checkout,您可以将卡片保存给客户吗?
- azure - 如何从 Azure 密钥保管库中的证书动态获取 ARM 模板中的证书指纹?
- git - Git 大目录检出失败
- arrays - 读取输入直到值 < 0
- postgresql - 尝试使用 python 2.7 在 macosx 10.14.6 上安装 psycopg2