Skip to content

Migrating from v0.24 to v0.25: HCL/Terraform asset support removed

props.Assets no longer treats .hcl and .tf files as structured, mergeable data. The github.com/hashicorp/hcl (v1) dependency has been removed entirely.


Breaking Changes

.hcl / .tf are no longer parsed as structured assets

Package: pkg/props

Before:

Open() on a .hcl or .tf embedded asset parsed the file into a generic map, deep-merged it across registered filesystems, and re-serialised the result (as JSON).

After:

.hcl and .tf files are treated as static assets like any other unstructured file: they are returned verbatim via reverse-search (last registered wins), with no parsing or merging.

Migration:

  • If you embed configuration that needs cross-module deep-merge, use one of the still-supported structured formats: .yaml/.yml, .json, .toml, or .xml.
  • If you embed .hcl/.tf purely as files to read back verbatim, no change is required — Open() still returns their raw bytes.

Why the change

HCL v1 (github.com/hashicorp/hcl) is frozen, and was pulled in solely for this feature. Its successor, github.com/hashicorp/hcl/v2, is a different, schema-driven library with no generic decode-to-map capability, so it cannot reproduce the previous behaviour for arbitrary HCL/Terraform documents (which are block-based and require a predefined schema in v2). The previous HCL support was also asymmetric — it parsed HCL on read but emitted JSON on write — so the round-trip was already lossy. Dropping it removes a frozen dependency and a misleading half-feature rather than carrying either forward.