Terraform 1.15 Closes Gap to OpenTofu on Dynamic Sources and Deprecation
Our take

Terraform’s 1.15 release marks a decisive step toward the flexibility that many practitioners have long demanded, and it does so without the fanfare that usually accompanies major version bumps. By introducing dynamic module sources, HashiCorp gives users the ability to compute a module’s location at runtime, a feature that brings Terraform closer to the composability seen in modern programming environments. This change matters because it reduces the friction of maintaining large‑scale infrastructure codebases where modules are often duplicated across environments or need to be swapped out as providers evolve. Teams can now explore a single source of truth for module definitions, discover variations through variables, and let the engine resolve the appropriate path automatically. The result is a more streamlined workflow that aligns with the progressive, AI‑native mindset we champion: technology that adapts to the user’s intent rather than forcing the user to adapt to static tooling.
Equally significant is the formal deprecation mechanism for variables and outputs. Previously, engineers faced a gray area when a module’s interface changed; they could comment out a variable or rely on informal naming conventions, which often led to silent breakages in CI pipelines. With a structured deprecation path, Terraform provides clear signals about upcoming removals, allowing teams to plan migrations with confidence. This mirrors the discipline we see in other forward‑looking platforms, such as the transition highlighted in Microsoft Launches Logic Apps Automation at Build 2026, where explicit lifecycle policies help developers stay productive while embracing new capabilities. The addition of an inline type conversion function and output‑level type constraints further tightens the contract between code and runtime, reducing errors that once required extensive manual testing. For users who are already juggling complex data pipelines, these safeguards translate directly into higher productivity and fewer surprises when deploying to production.
Native Windows ARM64 support is another quiet yet impactful enhancement. As more developers adopt devices powered by Apple Silicon and Windows on ARM, the ability to run Terraform natively eliminates the performance penalties and compatibility quirks associated with emulation layers. This move signals HashiCorp’s recognition that the compute landscape is diversifying, and it reinforces the brand’s progressive stance: tools must evolve alongside the hardware they run on. In a broader context, the release closes a gap with OpenTofu, the community‑driven fork that has been championing openness and modularity. By adopting features that were once exclusive to OpenTofu—dynamic sources and clearer deprecation pathways—Terraform reasserts its position as the de‑facto standard while still encouraging healthy competition that drives innovation across the IaC ecosystem.
Looking ahead, the real test will be how quickly teams adopt these capabilities to simplify their infrastructure code. The dynamic source feature, in particular, invites a shift toward more programmatic infrastructure definitions, a trend that dovetails with the rise of AI‑assisted code generation tools. As we continue to explore how AI can augment spreadsheet‑style data management, the ability to treat infrastructure as a living, adaptable data set will become a cornerstone of productivity. Will the community embrace these changes enough to set a new baseline for what “accessible IaC” looks like, or will legacy practices linger, prompting further forks and extensions? The conversation is just beginning, and Terraform 1.15 provides the tools to turn curiosity into tangible transformation.

HashiCorp has released Terraform 1.15, introducing dynamic module sources, a formal deprecation mechanism for variables and outputs, a new inline type conversion function, type constraints for output blocks, and native Windows ARM64 support. The release addresses several long-standing requests from the Terraform community.
By Matt SaundersRead on the original site
Open the publisher's page for the full experience