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/.tfpurely 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.