-
Notifications
You must be signed in to change notification settings - Fork 11
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
terraform: Add deprecation Go documentation comments #171
Conversation
Reference: #165 Except in certain known provider testing use cases without replacement (yet), this deprecates various `terraform` package functionality. The `terraform` package contains legacy Terraform core logic which has been copied to terraform-plugin-sdk and terraform-plugin-testing over the years and continually exported due to the complexity of rewriting developer functionality using the machine-readable interfaces for Terraform, such as JSON state. Much of this now-deprecated `terraform` package logic should have been omitted when this Go module was created, but that step was missed, so it is left as-is with deprecation notices following the Go module versioning guidelines. In reality, the entire `terraform` package will be removed in a future major version, however this change pragmatically leaves certain functionality without deprecation notices for now until replacement functionality is available so developers will not need to silence linting tools without it being actionable yet. If there is a valid use case for this functionality, developers should create a GitHub issue for tracking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm 🚀
Do we typically add changelogs for adding deprecation notices? Or just wait until the actual deprecation occurs
Sorry I should've mentioned that in the commit message. The short answer is yes for intentionally designed Go packages, however I'm opting to not include a changelog entry here because I think it'll be more confusing for developers, who might feel like they need to go check for usage when it likely affects only a very small (if any) portion of the population. Their usage externally would be unexpected as all of these are unintentionally part of the exported Go API having been just copied Terraform core "internal" code from some historical time and we likely would not support any changes to their logic since they fall outside the intention of the Go module being acceptance testing of Terraform Providers. If/when we do deprecate something like the We can certainly add a changelog entry in this case if folks disagree with my sentiment though. Happy to discuss more. |
This makes sense to me; changelog should be geared for consumers of the module and if a note would bring confusion, omitting sounds like a good call. Thanks for the context 👍🏻 |
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. |
Closes #165
Except in certain known provider testing use cases without replacement (yet), this deprecates various
terraform
package functionality. Theterraform
package contains legacy Terraform core logic which has been copied to terraform-plugin-sdk and terraform-plugin-testing over the years and continually exported due to the complexity of rewriting developer functionality using the machine-readable interfaces for Terraform, such as JSON state. Much of this now-deprecatedterraform
package logic should have been omitted when this Go module was created, but that step was missed, so it is left as-is with deprecation notices following the Go module versioning guidelines. In reality, the entireterraform
package will be removed in a future major version, however this change pragmatically leaves certain functionality without deprecation notices for now until replacement functionality is available so developers will not need to silence linting tools without it being actionable yet.If there is a valid use case for this functionality, developers should create a GitHub issue for tracking.