Change8

v1.15.0

📦 terraformView on GitHub →
6 features🐛 16 fixes🔧 27 symbols

Summary

This release introduces the `convert` function, support for variables in module sources, and new validation checks for backend blocks. It also includes numerous bug fixes across CLI, state management, and provider initialization.

Migration Steps

  1. If using `AWS_USE_FIPS_ENDPOINT` or `AWS_USE_DUALSTACK_ENDPOINT` environment variables for the S3 backend, ensure they are set strictly to `"true"` or `"false"` instead of relying on any non-empty value being treated as true.

✨ New Features

  • Produce builds for Windows ARM64.
  • Support setting a `deprecated` attribute on variable and output blocks to produce warnings.
  • backend/s3: Support authentication via `aws login`.
  • The `validate` command now checks the `backend` block for type existence, required attributes, and backend validation logic.
  • Introduce the `convert` function for precise inline type conversions.
  • Terraform now supports variables and locals in module source and version attributes.

🐛 Bug Fixes

  • File-level error diagnostics are now included in JUnit XML skipped test elements during testing.
  • Fixed refresh-only plan resulting in a non-zero exit code with no changes.
  • Fixed crash in `terraform show -json` when plan contains ephemeral resources with preconditions or postconditions.
  • Fixed `terraform init -json` to properly format all backend configuration messages as
  • The `state show` command will now explicitly fail (return code 1) when it fails to render the named resources state.
  • Terraform raises an explicit error if a plan file intended for one workspace is applied against another workspace.
  • Fixed `replace_triggered_by` reporting an error when given an invalid attribute reference that does not exist in the target resource.
  • Fixed nil pointer dereference crash during `terraform init` when the destination backend returns an error.
  • Stacks now send progress events if the plan fails for better UI integration.
  • Stacks component instances now report no-op plan/apply, solving a UI inconsistency with convergence destroy plans.
  • backend/http: Return conflicting lock info from HTTP backend instead of the lock that failed to be taken.
  • Fixed a bug causing Terraform to be unable to identify when two states had different output values (affecting backend migrations).
  • Cloud/registry discovery network requests are now more resilient to temporary network or service errors.
  • Enable formatting of `.tfquery.hcl` files by `terraform fmt`.
  • Fix `validate` not returning JSON for some early diagnostics.
  • Fix Terraform Stacks plugin installation error.

Affected Symbols