mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
This adds a field terraform_version to the state that represents the Terraform version that wrote that state. If Terraform encounters a state written by a future version, it will error. You must use at least the version that wrote that state. Internally we have fields to override this behavior (StateFutureAllowed), but I chose not to expose them as CLI flags, since the user can just modify the state directly. This is tricky, but should be tricky to represent the horrible disaster that can happen by enabling it. We didn't have to bump the state format version since the absense of the field means it was written by version "0.0.0" which will always be older. In effect though this change will always apply to version 2 of the state since it appears in 0.7 which bumped the version for other purposes.
19 lines
652 B
Go
19 lines
652 B
Go
package terraform
|
|
|
|
import (
|
|
"github.com/hashicorp/go-version"
|
|
)
|
|
|
|
// The main version number that is being run at the moment.
|
|
const Version = "0.7.0"
|
|
|
|
// A pre-release marker for the version. If this is "" (empty string)
|
|
// then it means that it is a final release. Otherwise, this is a pre-release
|
|
// such as "dev" (in development), "beta", "rc1", etc.
|
|
const VersionPrerelease = "dev"
|
|
|
|
// SemVersion is an instance of version.Version. This has the secondary
|
|
// benefit of verifying during tests and init time that our version is a
|
|
// proper semantic version, which should always be the case.
|
|
var SemVersion = version.Must(version.NewVersion(Version))
|