v1.15.0-alpha20260218
Breaking Changes📦 terraformView on GitHub →
⚠ 1 breaking✨ 9 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
- 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.