Comments (1)
Hi @bbnathan,
Thanks for starting this conversation, and sorry that this release led to errors in your existing configurations where the template version number was not pinned.
The HashiCorp-distributed Terraform providers (of which template
is one) all use semantic versioning to communicate about the content of each release. Under semantic versioning, incrementing the major version number is how we communicate that a release contains breaking changes.
In the Provider Versions documentation you can see the syntax for and recommendations about specifying specific provider version constraints in your configuration. The terraform init
command prints out the following warning whenever run with an unconstrained provider, to encourage adding a major version constraint for it:
The following providers do not have any version constraints in configuration,
so the latest version was installed.
To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.
* provider.template: version = "~> 1.0"
Following this advice will allow you to stay on the 1.x.x line of template
provider for as long as you wish, without risk of adopting intentional breaking changes in new releases. We recommend doing that in your root modules for every provider you use, as terraform init
itself recommends. The version constraints printed by that command are sufficient to pin to the major version that is current at the time the warning was printed.
While indeed we aim to make breaking changes infrequent, they are occasionally necessary to continue to evolve the product. For providers in particular, we use semantic versioning to communicate about those changes. There are more details about this (including information about the different versioning scheme used for the main Terraform CLI) in the blog post HashiCorp Terraform Provider Versioning, which was originally published as part of the release of Terraform 0.10 but remains generally true today.
Since this issue doesn't represent any specific work we could do to improve the situation, I'm going to close it. Thanks again for starting this conversation, and again sorry that your unpinned configurations were affected by these changes.
from terraform-provider-template.
Related Issues (20)
- Template 2.0.0 tries to interpulate percent (%) signs followed by curly-braces {} HOT 3
- Breaking change in substitution in v2.0.0 HOT 1
- The new 2.0.0 doesn't parse %${var} core HOT 6
- Make Terraform validate template_file on plan phase
- Feature request: Render variables in filenames in template_dir
- Template provider - Better error message at template parsing HOT 2
- Terraform template creating the wrong type of numbers HOT 5
- template_dir doesn't work on Terraform v0.12.4 HOT 2
- template_dir doesn't skip hidden files HOT 1
- [regression] provider-template fails rendering when template file has % in the content starting from v2.0.0 HOT 3
- go module uses invalid version HOT 4
- Passing Lists as Template Variables HOT 2
- template_dir can't handle subdirectories correctly on windows: open <filename>: The system cannot find the path specified.
- depends_on should wait for template_dir generation HOT 3
- Provider cannot be migrated to terraform-plugin-sdk as it uses `lang` pkg directly
- Terragrunt panic due to api body size. HOT 2
- Unsupported functions in template file HOT 1
- Changes from nearly a year ago not published
- Provider archived
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terraform-provider-template.