v1.15.0-alpha20260304
Breaking Changes📦 terraformView on GitHub →
⚠ 1 breaking✨ 6 features🐛 12 fixes🔧 20 symbols
Summary
This alpha release introduces Windows ARM64 builds, support for marking variables/outputs as deprecated, and the new `convert` function. It also includes numerous bug fixes across CLI, backend operations, and testing infrastructure.
⚠️ Breaking Changes
- The `AWS_USE_FIPS_ENDPOINT` and `AWS_USE_DUALSTACK_ENDPOINT` environment variables now only respect explicit `true` or `false` values for the S3 backend, replacing the previous behavior where any non-empty value was treated as `true`.Fix: Ensure these environment variables are set explicitly to "true" or "false" if FIPS or DualStack endpoints are required.
✨ New Features
- Added builds for Windows ARM64.
- Introduced the ability to set a `deprecated` attribute on variable and output blocks to generate warnings upon use.
- 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.
- Introduced 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 (return code 1) if it cannot render the named resource's 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 attribute reference that does not exist on the target resource.
- Fixed a nil pointer dereference crash during `terraform init` when the destination backend returns an error.
- Progress events are now sent if the plan fails, improving UI integration.
- Component instances now correctly report no-op plan/apply status, resolving UI inconsistencies with convergence destroy plans.
- HTTP backend now returns conflicting lock information instead of the lock that failed to be taken.
- Fixed a bug preventing Terraform from identifying when two states had different output values, which could affect backend migrations.
Affected Symbols
backend/s3variable blockoutput blockvalidate commandconvert functionmodule source attributemodule version attributessh-based provisioner (file + remote-exec)terraform init loginit commandterraform test mock blocksdeprecated resource attributes / blockslist_start JSON logstesting frameworkterraform show -jsonterraform init -jsonstate show commandapply commandreplace_triggered_bybackend/http