hashicorp / terraform-plugin-framework

A next-generation framework for building Terraform providers.
https://developer.hashicorp.com/terraform/plugin/framework
Mozilla Public License 2.0
304 stars 93 forks source link

attr: Consider Dropping context.Context from Value Type() Method #521

Open bflad opened 2 years ago

bflad commented 2 years ago

Module version

v0.14.0

Use-cases

attr.Value in the framework type system must be able to return their associated attr.Type. This is handled via the Type(context.Context) attr.Type method today. While the appropriate context.Context is generally available, there are places where it may not be, such as types package value creation functions.

Attempted Solutions

Either adding context.Context to all potential callers that may eventually call Type() or working around it via:

ctx := context.Background()
// ... Type(ctx) ...

Proposal

Type information should be very static and not require special logic where the context.Context is especially helpful (e.g. logging). Therefore, we may be able to drop the parameter to remove this awkwardness.

References

bflad commented 2 years ago

Upstream terraform-plugin-go's (tftypes.Value).Type() does not require the context: https://pkg.go.dev/github.com/hashicorp/terraform-plugin-go@v0.14.0/tftypes#Value.Type