* Add component registry source resolution support to Terraform Stacks
This change implements the missing component source resolution case in the stack configuration loader, enabling Terraform Stacks to properly handle component registry sources from HCP Terraform and other component registries.
The implementation mirrors the existing module registry resolution workflow, where component sources are first resolved to their versioned form using the source bundle's component metadata, then converted to final source addresses that can be used to locate the actual component code. This completes the integration between the terraform-registry-address component parsing capabilities and the go-slug sourcebundle component resolution APIs.
* chore: bump go-slug to v0.18.1
* fix: add case for component final source type
* chore: rm space
* chore: sync module deps
* chore: update testdata with separate bundle
* fix: manifest file json obj with trailing comma
* Add changelog entry to 1.14
---------
Co-authored-by: Michael Yocca <michael.yocca@hashicorp.com>
This should eventually have the same meaning as it does for the modules
language under the ephemeral_values language experiment, but as of this
commit is just accepted during decoding and then ignored. The rest of the
functionality will follow in subsequent commits.
There's no specific experiment guard in this case because the stack
configuration language is already experimental as a whole anyway.
This is a first pass for decoding the new stack configuration language,
which is overall pretty similar to the Terraform module language but does
have some intentional differences both in its top-level concepts -- has
embedded stacks and components instead of nested modules and resources --
and in its details, where we're making use of some learnings about where
folks have struggled with the Terraform module language.
This initial implementation should be enough for us to experiment with but
we'll probably iterate on this more in later commits as we learn from
implementing a language runtime for this and from actually trying to use
the language for real use-cases.