terraform版本控制方案如何?

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

我已经使用terraform已有一段时间了,我总是想到一个疑问,terraform-core使用的是哪个[[versioning scheme?

语义版本

又名semver吗?因为如果是这样,为什么要进行次要版本的升级(例如,将项目从0.11.X升级到0.12.Y时)将那个terraform的状态写为0.12.x,并且不允许将其降级到0.11.x? 另一件事:为什么他们选择在

0.X.X

中而不是1.X.X开头版本号?这有什么意思吗?
terraform versioning
1个回答
0
投票
他们确实使用了语义版本控制,但是它们的解释与大多数版本略有不同。

这是Hashicorp员工关于GitHub issue的版本控制方法的答案:

在HashiCorp,我们非常重视v1.0的想法,一旦Terraform到达那里,它将代表着强大的兼容性前景,因为我们认为配置语言,内部架构,CLI和其他产品功能适合长途旅行。

Terraform的当前状态有些微妙。我们仍然认为向后兼容非常重要,因为我们知道当今有很多生产基础设施都取决于Terraform。因此,我们必须做出妥协,以便在实现v1.0承诺方面不断取得进展。尽管我们将这些干扰降到最低,但始终无法避免,因此我们尝试在变更日志和升级指南(如果适用)中非常明确地说明它们。

考虑到这一点,目前我们建议始终在升级之前参考变更日志,因为这是我们注意到升级期间适用的所有特殊注意事项的主要手段。我们尝试保留重大的突破性更改,以增加版本号中的第二个位置(传统上为“次要”),这代表了我们朝着最终v1.0迈进时的“主要”发展里程碑。

由于Terraform是应用程序而不是库,因此我们不打算遵循该字母的语义版本约定,但是由于它们确实代表了通用的版本习惯用法,因此我们很可能会在精神上遵循它们,因为我们当然希望尽可能清晰。正如@kshep指出的那样,v0发行版在semver约定中是特殊的,但是semver中的v1.0的含义与我们打算解释它的方式基本一致。

很抱歉,我们的版本编号做法在这里引起了混乱;根据这些反馈,我们将在发布每个版本时尝试更清楚地说明每个发行版的重要性和风险,并将根据我在上面所做的工作撰写一些更明确的文档。

参考:https://github.com/hashicorp/terraform/issues/15839#issuecomment-323106524

© www.soinside.com 2019 - 2024. All rights reserved.