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

tfprotov5+tfprotov6: Remove temporary ResourceServerWithMoveResourceState interface #389

Closed
bflad opened this issue Mar 12, 2024 · 1 comment · Fixed by #408
Closed

tfprotov5+tfprotov6: Remove temporary ResourceServerWithMoveResourceState interface #389

bflad opened this issue Mar 12, 2024 · 1 comment · Fixed by #408
Assignees
Labels
breaking-change This will impact or improve our compatibility posture tech-debt
Milestone

Comments

@bflad
Copy link
Contributor

bflad commented Mar 12, 2024

terraform-plugin-go version

v0.23.0

Description

The ResourceServerWithMoveResourceState temporary interface was introduced as a way to onboard downstream SDKs onto the new MoveResourceState RPC before it was required. This enabled a period where terraform-plugin-go could support new functionality while not causing compilation errors if downstream Go modules happened to be referencing differing SDK versions that may or may not all support the new functionality immediately.

The challenge with this setup is that terraform-plugin-mux is low level enough to need to reference even the temporary interface in order to work correct. This means that while ResourceServer can require the new method, the temporary interface needs one additional release before it can removed "safely".

Proposal

In tfprotov5 and tfprotov6 remove the ResourceServerWithMoveResourceState interface type. In the changelog, note that consumers should require terraform-plugin-mux@v0.16.0 (or whatever is correct at the time) dependency to prevent compilation errors.

References

@bflad bflad added breaking-change This will impact or improve our compatibility posture tech-debt labels Mar 12, 2024
@bflad bflad added this to the v0.24.0 milestone Mar 12, 2024
@bflad bflad self-assigned this May 10, 2024
bflad added a commit that referenced this issue May 10, 2024
…tate interface

Reference: #389

The `ResourceServerWithMoveResourceState` temporary interface was introduced as a way to onboard downstream SDKs onto the new `MoveResourceState` RPC before it was required. This enabled a period where terraform-plugin-go could support new functionality while not causing compilation errors if downstream Go modules happened to be referencing differing SDK versions that may or may not all support the new functionality immediately. Now that those downstream Go modules are referencing `ResourceServer` directly again, the temporary interface can be removed to prevent bloating this Go module.
bflad added a commit that referenced this issue May 10, 2024
…tate interface (#408)

Reference: #389

The `ResourceServerWithMoveResourceState` temporary interface was introduced as a way to onboard downstream SDKs onto the new `MoveResourceState` RPC before it was required. This enabled a period where terraform-plugin-go could support new functionality while not causing compilation errors if downstream Go modules happened to be referencing differing SDK versions that may or may not all support the new functionality immediately. Now that those downstream Go modules are referencing `ResourceServer` directly again, the temporary interface can be removed to prevent bloating this Go module.
Copy link

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking-change This will impact or improve our compatibility posture tech-debt
Projects
None yet
1 participant