Terraform 版本控制方案怎么样?
What about terraform versioning scheme?
我使用 terraform 已经有一段时间了,但我总是会怀疑,哪个 versioning scheme 是 terraform -核心使用?
它是语义版本控制 AKA semver 吗?因为如果是的话,为什么要在次要版本中升级,就像将项目从 0.11.X 升级到 0.12.Y 时会用 0.12.x 写入 terraform 的状态,然后它不允许将其降级回 0。11.x?
另一件相关的事情:为什么他们选择以 0.X.X 而不是 1.X.X 开始他们的版本号?有什么意义吗?
他们确实使用语义版本控制,但他们的解释与大多数略有不同。
这是 Hashicorp 员工在 GitHub issue 上关于他们的版本控制方法的回答:
At HashiCorp we take the idea of a v1.0 very seriously, and once Terraform gets there it will represent a strong promise of compatibility because we believe that the configuration language, internal architecture, CLI, and other product features are right for the long haul.
The current state of Terraform is a little more subtle. We do still consider backward-compatibility very important since we know there is a lot of production infrastructure depending on Terraform today. We must therefore make compromises so we can keep making progress towards something we could make v1.0 promises about. While we keep these disruptions to a minimum, they cannot always be avoided, and so we try to be very explicit about them in the changelog and, where applicable, in upgrade guides.
With this in mind, at this time we suggest always referring to the changelog before upgrading since this is our primary means to note any special considerations that apply during an upgrade. We try to reserve significant breaking changes for increases to the second (traditionally "minor") position in the version number, which at this time represent our "major" development milestones as we work towards an eventual v1.0.
Since Terraform is an application rather than a library we do not intend to follow the Semantic Versioning conventions to the letter, but since they do indeed represent common versioning idiom we are likely to follow them in spirit, since of course we wish to be as clear as possible. As @kshep noted, v0 releases are special in the semver conventions, but the meaning of v1.0 in semver is broadly consistent with how we intend to interpret it.
I'm sorry that our version numbering practices caused confusion here; based on this feedback, we will attempt to be clearer about the significance and risk of each release when we announce it and will work on writing some more explicit documentation on what I wrote above.
参考:https://github.com/hashicorp/terraform/issues/15839#issuecomment-323106524
迟到总比不到好:https://www.hashicorp.com/blog/announcing-hashicorp-terraform-1-0-general-availability
从这里开始,您可以期待常规的语义版本控制支持。
我使用 terraform 已经有一段时间了,但我总是会怀疑,哪个 versioning scheme 是 terraform -核心使用?
它是语义版本控制 AKA semver 吗?因为如果是的话,为什么要在次要版本中升级,就像将项目从 0.11.X 升级到 0.12.Y 时会用 0.12.x 写入 terraform 的状态,然后它不允许将其降级回 0。11.x?
另一件相关的事情:为什么他们选择以 0.X.X 而不是 1.X.X 开始他们的版本号?有什么意义吗?
他们确实使用语义版本控制,但他们的解释与大多数略有不同。
这是 Hashicorp 员工在 GitHub issue 上关于他们的版本控制方法的回答:
At HashiCorp we take the idea of a v1.0 very seriously, and once Terraform gets there it will represent a strong promise of compatibility because we believe that the configuration language, internal architecture, CLI, and other product features are right for the long haul.
The current state of Terraform is a little more subtle. We do still consider backward-compatibility very important since we know there is a lot of production infrastructure depending on Terraform today. We must therefore make compromises so we can keep making progress towards something we could make v1.0 promises about. While we keep these disruptions to a minimum, they cannot always be avoided, and so we try to be very explicit about them in the changelog and, where applicable, in upgrade guides.
With this in mind, at this time we suggest always referring to the changelog before upgrading since this is our primary means to note any special considerations that apply during an upgrade. We try to reserve significant breaking changes for increases to the second (traditionally "minor") position in the version number, which at this time represent our "major" development milestones as we work towards an eventual v1.0.
Since Terraform is an application rather than a library we do not intend to follow the Semantic Versioning conventions to the letter, but since they do indeed represent common versioning idiom we are likely to follow them in spirit, since of course we wish to be as clear as possible. As @kshep noted, v0 releases are special in the semver conventions, but the meaning of v1.0 in semver is broadly consistent with how we intend to interpret it.
I'm sorry that our version numbering practices caused confusion here; based on this feedback, we will attempt to be clearer about the significance and risk of each release when we announce it and will work on writing some more explicit documentation on what I wrote above.
参考:https://github.com/hashicorp/terraform/issues/15839#issuecomment-323106524
迟到总比不到好:https://www.hashicorp.com/blog/announcing-hashicorp-terraform-1-0-general-availability
从这里开始,您可以期待常规的语义版本控制支持。