v1.15.0-rc3
📦 terraformView on GitHub →
✨ 6 features🐛 16 fixes🔧 22 symbols
Summary
This release introduces significant new features like the `convert` function, support for variables in module sources, and enhanced backend validation. It also includes numerous bug fixes across CLI commands, state management, and provider initialization.
Migration Steps
- If using S3 backend, note that `AWS_USE_FIPS_ENDPOINT` and `AWS_USE_DUALSTACK_ENDPOINT` environment variables now strictly require `true` or `false` values; any other non-empty value will be treated as false.
✨ New Features
- Production builds are now available for Windows ARM64.
- Introduced the ability to set a `deprecated` attribute on variable and output blocks to generate warnings.
- S3 backend now supports authentication via `aws login`.
- The `validate` command now checks the `backend` block for type existence, required attributes, and backend-specific validation.
- Introduction of the `convert` function for precise inline type conversions.
- Terraform now supports using variables and locals within module source and version attributes.
🐛 Bug Fixes
- File-level error diagnostics are now included in JUnit XML skipped test elements during testing.
- Fixed an issue where a refresh-only plan could result in a non-zero exit code when no changes were present.
- Fixed crash in `terraform show -json` when the plan contained ephemeral resources with preconditions or postconditions.
- Fixed `terraform init -json` to correctly format all backend configuration messages as JSON instead of plain text.
- The `state show` command will now explicitly fail with exit code 1 if it cannot render the named resource state.
- Terraform now raises an explicit error if a plan file intended for one workspace is applied against a different workspace.
- The `replace_triggered_by` lifecycle argument now correctly reports an error if given an invalid, non-existent attribute reference.
- Fixed nil pointer dereference crash during `terraform init` when the destination backend returns an error.
- Stacks now send progress events if the plan fails, improving UI integration.
- Stacks component instances now correctly report no-op plan/apply status, resolving UI inconsistency with convergence destroy plans.
- HTTP backend now returns conflicting lock information instead of the lock that failed to be taken.
- Fixed a bug where Terraform failed to identify differences in output values between two states, potentially affecting backend migrations.
- Terraform Cloud and registry discovery network requests are now more resilient to temporary network or service errors.
- Enabled formatting of `.tfquery.hcl` files by `terraform fmt`.
- Fixed `validate` command not returning JSON output for some early diagnostics.
- Fixed Terraform Stacks plugin installation errors.
Affected Symbols
backend/s3validate commandconvert functionmodule source attributemodule version attributeoutput blocksssh-based provisioner (file + remote-exec)terraform init loginit commandterraform test mock blocksresource attributes/blocks deprecation detectionlist_start JSON logsinput variable validation for Stackscontainer value comparison to null logicterraform applyreplace_triggered_bybackend/httpstate show commandterraform cloud/registry discovery network requeststerraform fmtterraform init -jsonterraform show -json