What hashicorp/terraform shipped
Written by FoxPlug from public releases; not affiliated with HashiCorp. An automatic summary of the public release, pull request and commit data of github.com/hashicorp/terraform. HashiCorp did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- Terraform 1.17.0-beta2 released with support for variables and locals in provider requirements, a new -minimal-refresh planning option, and general availability of Terraform Policy. Release
- Terraform 1.16.4 released with fixes for policy evaluation rendering and stacks deferral errors. Release
- apply command now sends prior BeforeIdentity instead of planned null identity when destroying or forgetting resources. Pull request #39294
- Registry provider lookups now reuse a single HTTP client instead of creating new clients for each request, reducing TCP and TLS handshake overhead. Pull request #39262
- Interactive user input collection refactored with a new UIInput implementation for better testability and maintainability. Pull request #39276
- All integration tests and E2E CLI usage migrated to the new interactive user prompting implementation. Pull request #39279
- State serialization now ensures objects always have ObjectStatus to prevent invalid states from being visible during concurrent updates. Pull request #39287
- E2E tests updated to remove template provider dependency and add test coverage for interactive apply approval. Pull request #39282
- textdecodebase64 function fixed to accept valid UTF-8 containing literal U+FFFD while rejecting malformed UTF-8. Pull request #39256
- Plan and apply -target flag validation improved to properly warn when targets differ between plan and apply. Pull request #39257
Why it matters
Two new releases ship this week with feature additions and bug fixes. The 1.17.0-beta2 release introduces variables and locals in provider requirements alongside the new -minimal-refresh option. Infrastructure improvements focus on HTTP client reuse in registry operations and state serialization robustness, while refactoring efforts modernize how interactive prompts are tested across the codebase.
Changelog entry
- NEW FEATURES: Terraform now supports variables and locals in provider requirements; new -minimal-refresh planning option added to refresh only resources with proposed changes; Terraform Policy now generally available Release
- BUG FIXES: Fixed policy evaluation rendering for older Terraform Enterprise versions; fixed invalid deferred error in stacks when provider returns deferral with unknown count/for_each Release
- apply: send prior BeforeIdentity instead of planned null identity when destroying or forgetting resources [#39294] Pull request #39294
- getproviders: reuse one HTTP client for registry requests to reduce TCP and TLS handshake overhead [#39262] Pull request #39262
- Ensure states without ObjectStatus are never serialized during concurrent updates [#39287] Pull request #39287
- fix: textdecodebase64 no longer returns error on valid UTF-8 containing literal U+FFFD [#39256] Pull request #39256
- fix: properly check that plan and apply time -targets match and return warning when they do not [#39257] Pull request #39257
- Validate provider_meta for duplicate blocks [#39268] Pull request #39268
- Fix provider requirements override behavior for multiple required provider blocks [#39258] Pull request #39258
- Fix error checked when rendering policy evaluation output for compatibility with go-tfe [#39095] Pull request #39095
Terraform 1.17.0-beta2 and 1.16.4 released. New features in beta include variables/locals in provider requirements and -minimal-refresh planning. Bug fixes and internal refactoring improve registry performance and state handling.
This week brings two Terraform releases. Version 1.17.0-beta2 introduces variables and locals in provider requirements and a new -minimal-refresh planning option to reduce unnecessary refresh operations. Version 1.16.4 addresses policy evaluation rendering and stacks errors. Behind the scenes, we improved HTTP client reuse for registry operations, strengthened state serialization safety, and modernized interactive prompt testing across integration and E2E tests.