Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a deepmerge function #182

Closed
luis-guimaraes-exoawk opened this issue Apr 15, 2024 · 1 comment
Closed

Add a deepmerge function #182

luis-guimaraes-exoawk opened this issue Apr 15, 2024 · 1 comment

Comments

@luis-guimaraes-exoawk
Copy link

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.

@apparentlymart
Copy link
Collaborator

Hi @luis-guimaraes-exoawk! Thanks for this feature request.

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.

@apparentlymart apparentlymart closed this as not planned Won't fix, can't repro, duplicate, stale Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants