Change8

v1.15.0-rc4

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

Summary

This release introduces Windows ARM64 builds, support for deprecation attributes on variables/outputs, and the new `convert` function. It also enhances backend validation and fixes numerous bugs across CLI, state management, and providers.

Migration Steps

  1. If using S3 backend environment variables, ensure `AWS_USE_FIPS_ENDPOINT` and `AWS_USE_DUALSTACK_ENDPOINT` are set strictly to `"true"` or `"false"` strings, as any non-empty value is no longer treated as `true`.

✨ New Features

  • Produce builds for Windows ARM64.
  • Introduce the `deprecated` attribute on variable and output blocks to generate warnings when used.
  • 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.
  • Introduce the `convert` function for precise inline type conversions.
  • Terraform now supports using 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 a refresh-only plan resulting in a non-zero exit code when no changes were present.
  • 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 JSON instead of plain text.
  • 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.
  • `replace_triggered_by` now reports 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.
  • Component instances in Stacks should report no-op plan/apply, resolving UI inconsistency with convergence destroy plans.
  • HTTP backend now returns conflicting lock info instead of the lock that failed to be taken.
  • Fixed a bug where Terraform could not identify when two states had different output values (affecting backend migrations).
  • Terraform Cloud and registry discovery network requests are more resilient against temporary network or service errors.
  • Enabled formatting of `.tfquery.hcl` files by `terraform fmt`.
  • Fixed `validate` not returning JSON for some early diagnostics.
  • Fixed Terraform Stacks plugin installation error.

Affected Symbols