Change8

v1.15.0-alpha20260218

Breaking Changes
📦 terraformView on GitHub →
1 breaking9 features🐛 11 fixes🔧 14 symbols

Summary

This alpha release introduces build support for Windows ARM64, allows marking variables/outputs as deprecated, and enhances backend validation and Terraform Test capabilities. It also fixes several CLI and state handling bugs.

⚠️ Breaking Changes

  • The environment variables `AWS_USE_FIPS_ENDPOINT` and `AWS_USE_DUALSTACK_ENDPOINT` now only respect explicit "true" or "false" string values. Previously, any non-empty value was treated as true. Update scripts/automation to ensure these variables are set strictly to "true" or "false" if they were previously set to other truthy values.

Migration Steps

  1. If using `AWS_USE_FIPS_ENDPOINT` or `AWS_USE_DUALSTACK_ENDPOINT`, ensure these environment variables are explicitly set to "true" or "false" to maintain intended behavior.

✨ New Features

  • Added support for Windows ARM64 builds.
  • Introduced the ability to mark variable and output blocks as deprecated using a `deprecated` attribute, which generates warnings upon use.
  • S3 backend now supports authentication via `aws login`.
  • The `validate` command now performs checks on the `backend` block, verifying type existence, required attributes, and backend-specific validation logic.
  • Re-enabled support for PowerShell in the ssh-based provisioner (file + remote-exec).
  • Terraform init log timestamps now include millisecond precision.
  • The `terraform init` command now skips dependencies declared in development overrides, allowing installation of dependencies not listed in the override file.
  • Allowed functions within mock blocks in Terraform Test.
  • Improved detection logic for deprecated resource attributes/blocks.

🐛 Bug Fixes

  • File-level error diagnostics are now included in JUnit XML skipped test elements during testing, ensuring CI/CD pipelines catch validation failures.
  • Fixed an issue where a refresh-only plan could incorrectly result in a non-zero exit code when no changes were present.
  • Fixed a 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 requested resource state.
  • Terraform now raises an explicit error if a plan file generated for one workspace is applied against a different workspace.
  • The `replace_triggered_by` lifecycle argument now correctly reports an error if given an invalid attribute reference that does not exist on the target resource.
  • Fixed a nil pointer dereference crash during `terraform init` when the destination backend returned an error.
  • Stacks now send progress events if the plan fails, improving UI integration.
  • Component instances in stacks now correctly report no-op plan/apply status, resolving a UI inconsistency with convergence destroy plans.
  • Fixed a bug where Terraform failed to identify differences in output values between two states, potentially causing issues during backend migrations.

Affected Symbols