-
Notifications
You must be signed in to change notification settings - Fork 9.5k
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
Prepare for plugin protocol versioning #19392
Labels
Milestone
Comments
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. |
ghost
locked and limited conversation to collaborators
Mar 31, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Right now we have our single protobuf protocol definition living in
plugin/proto
. Our design for protocol versioning moving forward requires that the protocol definitions and their associated Go packages to include the version number so we're explicit about it in case of introducing a new protocol version 6 alongside 5 in a later release.Therefore:
plugin/proto
package should move tointernal/tfplugin5
.plugin.proto
should betfplugin5.proto
package
declaration intfplugin5.proto
should bepackage tfplugin5;
package tfplugin5
plugin/proto
should import instead asimport proto "github.com/hashicorp/terraform/internal/tfplugin5"
make proto
Makefile target will need to run the generator in the new directory instead.internal/tfplugin5/tfplugin5.proto
should have a comment at the top announcing it as the definition of protocol version 5.0. Future minor releases of the protocol will update this file in-place, announcing as version 5.1 etc over time.tfplugin5.proto
file at the version they intend to implement into their own repository and useprotoc
against it to produce stubs for their target language.internal/tfplugin6
It is particularly important that we change the
package
declaration in the.proto
file before we release any updated plugins "for real" because the package name is part of the RPC protocol and therefore cannot be changed later.Later we will probably move the actual
proto
file into a different documentation-oriented location, but for now keeping it in the directory where the Go package is generated keeps things simple with our existing generation process.The text was updated successfully, but these errors were encountered: