What hashicorp/terraform shipped
Written by FoxPlug from the repository's own releases; not affiliated with HashiCorp. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/hashicorp/terraform; HashiCorp did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Released version 1.17.0-rc1, which adds support for variables and locals in provider requirements, a new -minimal-refresh planning option, and makes Terraform Policy generally available. Release
- Prepared the repository for the 1.17.0-rc1 release, updating the CHANGELOG.md and version/VERSION files. Pull request #39346
- Cleaned up the repository after the 1.17.0-rc1 release, updating the CHANGELOG.md and version/VERSION files. Pull request #39357
- Added a Pattern address type designed to match one or more possible expansion paths without ambiguity. Pull request #39350
- Captured state command parsing rules in the command package to replace inconsistent target parsing. Pull request #39351
- Changed removed blocks with destroy = false to check module containment instead of separate address comparisons. Pull request #39349
- Applied targeting consistently during resource expansion so placeholder nodes for partial-expanded resources are selected correctly. Pull request #39354
- Fixed cloud block workspace mapping to support keys with uppercase letters in key-value tags. Pull request #39306
- Updated workspace new so its success message is only logged when state population succeeds. Pull request #39192
- Made state identities use the arguments package to process CLI flags and arguments. Pull request #39334
Why it matters
This week brought the first release candidate for version 1.17.0, with new features including variables and locals in provider requirements, a minimal refresh planning option, and general availability of Terraform Policy. Alongside the release, a series of changes improved how target patterns and containment rules work for resource and module addressing. These changes matter to anyone using targeting, test overrides, state commands, or workspace mappings because they make behavior more consistent and fix edge cases.
Changelog entry
- V1.17.0-rc1: Terraform now supports variables and locals in provider requirements, adds a -minimal-refresh planning option, and makes Terraform Policy generally available. Release
- Added a Pattern address type that matches one or more expansion paths. Pull request #39350
- State commands now use consistent target pattern parsing. Pull request #39351
- Removed blocks with destroy = false now use module containment for planning. Pull request #39349
- Applied targeting consistently during resource expansion. Pull request #39354
- Fixed cloud block workspace mapping to support uppercase keys in key-value tags. Pull request #39306
- Workspace new now logs success only after state population succeeds. Pull request #39192
- State identities now uses the arguments package for CLI flag parsing. Pull request #39334
- Prepared repository for 1.17.0-rc1 release. Pull request #39346
- Cleaned up repository after 1.17.0-rc1 release. Pull request #39357
Terraform 1.17.0-rc1 is out, with variables and locals in provider requirements, a -minimal-refresh planning option, and Terraform Policy now generally available. We also added a Pattern address type and made targeting more consistent during resource expansion.
Terraform 1.17.0-rc1 is now available. This release candidate adds support for variables and locals in provider requirements, a new -minimal-refresh planning option that only refreshes resources with proposed changes, and makes Terraform Policy generally available. We also shipped several refactors that introduce a Pattern address type and make targeting and containment rules more consistent during resource expansion, state commands, and test overrides. Additionally, a fix ensures uppercase keys work in key-value tags for cloud block workspace mapping. See the full changelog for details.
Week of September 28, 2026
What shipped
- Version 1.16.5 released with fixes for a crash when tainted instance state lacks valid status and an issue where resource identity could be nil during delete. Release
- The -minimal-refresh planning option now forwards to HCP Terraform and Terraform Enterprise through the cloud block and legacy remote backend. Pull request #39310
- Refactoring began to move user-facing init message codes into a centralized location to eliminate use of the message registry map. Pull request #39082
- Core deferral code underwent cleanup to fix action expansion deferral recording and improve code understandability. Pull request #39311
- The fileset function now skips entries that do not resolve, including symlinks to directories, aligning with Terraform's glob behavior. Pull request #39260
- The validate command's JSON view implementation was updated to use the new JSONStaticView type. Pull request #39205
- Command tests based on internal timings and blocked execution were moved to synctest for more deterministic and faster test runs. Pull request #39307
- Tests were added to define current fmt behavior with symlinked files and reproduce issues with symlink handling. Pull request #39308
Why it matters
Version 1.16.5 shipped with important bug fixes for crashes and state handling. The ongoing refactoring of init message codes and JSON output views improves code maintainability. Remote operations now support the -minimal-refresh planning option when using HCP Terraform or Terraform Enterprise.
Changelog entry
- Fixed a crash that happens when a tainted instance state is seen without a valid status Release
- Fixed an issue where resource identity could be nil during delete Release
- The -minimal-refresh planning option now forwards to HCP Terraform and Terraform Enterprise Pull request #39310
- The fileset function now skips entries that do not resolve, including symlinks to directories Pull request #39260
Terraform 1.16.5 is out with fixes for tainted state crashes and resource identity issues. The -minimal-refresh option now works with HCP Terraform and Terraform Enterprise.
Terraform 1.16.5 is available with two important bug fixes: a crash when tainted instance state lacks valid status and a resource identity nil issue during delete. Additionally, the -minimal-refresh planning option now forwards to HCP Terraform and Terraform Enterprise. Internal refactoring continues to improve code organization and test reliability.
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 Pull request #39294
- Getproviders: reuse one HTTP client for registry requests to reduce TCP and TLS handshake overhead Pull request #39262
- Ensure states without ObjectStatus are never serialized during concurrent updates Pull request #39287
- Fix: textdecodebase64 no longer returns error on valid UTF-8 containing literal U+FFFD Pull request #39256
- Fix: properly check that plan and apply time -targets match and return warning when they do not Pull request #39257
- Validate
provider_metafor duplicate blocks Pull request #39268 - Fix provider requirements override behavior for multiple required provider blocks Pull request #39258
- Fix error checked when rendering policy evaluation output for compatibility with go-tfe 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.