← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

OpenTofu 1.13 Improves Plan-Time Resolution of Unknown Values and Adds Linting

🔄 Updated 11d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • OpenTofu 1.13 released with new functions for plan-time resolution.
  • Functions like `convert` and `assumenotnull` aid module authors.
  • Experimental built-in linting rules added, enabled via `-lint=all` flag.
  • Opt-in Symbol Libraries experiment shares functions and type definitions.

Enhanced Plan-Time Resolution

OpenTofu version 1.13 introduces new capabilities for module authors to resolve expressions during the planning phase. Specifically, functions such as `convert` and `assumenotnull` address scenarios where `count` or `for_each` keys remain unknown due to dynamic inputs like `yamldecode` results. This allows the planner to determine the number of resource instances even when all their attributes are not yet known, preventing plan failures.

The `convert` function enables specifying a known type for values, even if the input is initially unknown, such as with `yamldecode`. When combined with `assumenotnull`, it allows `count` expressions based on nullness to resolve to zero or one, while the object's contents can remain unknown until the apply phase. This design aligns with a similar feature introduced in Terraform 1.15.

New Linting Capabilities

OpenTofu 1.13 includes experimental built-in linting rules, which can be enabled using the `-lint=all` flag with `tofu validate`, `tofu plan`, or `tofu apply`. These rules include `core:unused-variable` and `core:count-instead-enabled`. The maintainers noted that linting was a highly requested feature, with future plans for custom rules and broader policy checks. This feature complements existing static analysis tools like TFLint.

Symbol Libraries Experiment

An opt-in experimental feature called Symbol Libraries is also part of this release. It allows sharing functions and type definitions through `*.sym.hcl` files. While libraries cannot directly access resources, data sources, or provider functions, callers can pass resource values into library functions. The OpenTofu team aims to stabilize this feature in version 1.14.

Other Changes

Version 1.13 also removes Windows Remote Management (WinRM) support from `tofu`.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~4 min · 3 stories · Nov 07

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Reporting from

OpenTofu released version 1.13, introducing new functions like `convert` and `assumenotnull` to help module authors resolve expressions during the planning phase, particularly for `count` and `for_each` with unknown inputs. This version also adds experimental built-in linting rules and an opt-in Symbol Libraries feature, enhancing the platform's ability to handle complex configurations and improve code quality.