You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since Terraform mainly uses functions provided by go-cty, the need to introduce a deepmerge as a builtin function (hashicorp/terraform#31815) could be satisfied by go-cty and help standardize the implementation of deepmerge instead of relying on providers to implement it in an expected way.
The text was updated successfully, but these errors were encountered:
I previously researched the idea of "deep merge" and found that there is no strong consensus about what exactly such an operation does: each library that offers it in some language seems to differ in the details.
Therefore I don't think it's a good fit for a "standard library" function, either here in cty or over in Terraform. Instead, I believe the Terraform team intends that the new capability for provider-contributed functions will allow the many different variations of "deep merge" to coexist in different providers, so that all of the different major opinions about how this function ought to behave can be simultaneously available to those who need them.
With all that said, Terraform already has plenty of functions that are not from this library, and HashiCorp also maintains its own library of functions that are used by its other products like Packer, and so if those downstreams choose to provide such a function as built-ins they are already empowered to do that without adding anything to this codebase, and then they can make the call on behalf of their users about exactly how the function should behave.
Since I don't intend to incorporate such a function into this codebase, I'm going to close this issue. Thanks again for the feedback.
Since Terraform mainly uses functions provided by go-cty, the need to introduce a deepmerge as a builtin function (hashicorp/terraform#31815) could be satisfied by go-cty and help standardize the implementation of deepmerge instead of relying on providers to implement it in an expected way.
The text was updated successfully, but these errors were encountered: