-
Notifications
You must be signed in to change notification settings - Fork 26
feat: Support application level protocol message. #294
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
Conversation
This will let us make breaking changes to the protocol while ensuring users get the right message on what todo. e.g update plugin or cli (client).
2a446a7 to
105a437
Compare
clients/source.go
Outdated
| return nil, err | ||
| } | ||
| if protocolVersion < versions.SourceProtocolVersion { | ||
| return nil, fmt.Errorf("destination plugin protocol version %d is lower than client version %d. Try updating client", protocolVersion, versions.SourceProtocolVersion) |
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.
typo: source
disq
left a comment
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.
Looks like a good first step. Rejecting versions and just suggesting upgrading plugins (and for example never suggesting upgrading the cli) won't cover all cases though. In 0.23.0 we had "module version negotiation" where each module responded with a list of versions it supports, and the cli chose the maximum common version. Something like that might be in the cards for the future for here too.
agree it might be possible future improvement but also I actually don't think more then that is needed. Because in v0 with go-plugin and with protocol negotiation we had so much bugs that most of the time it even didn't print the correct version, so I would just start with a correct message that always work and see how critical it is to support multiple versions in the CLI. The solution will be not in the SDK anyway because it will be on the cli version to try and use client for older version or for newer version but that's too much for now. |
🤖 I have created a release *beep* *boop* --- ## [0.13.8](v0.13.7...v0.13.8) (2022-10-14) ### Features * Support application level protocol message. ([#294](#294)) ([3e1492b](3e1492b)) ### Bug Fixes * **tests:** Parallel plugin testing, remove old faker ([#292](#292)) ([48f953a](48f953a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This will let us make breaking changes to the protocol while ensuring users get the right message on what todo. e.g update plugin or cli (client).
This is needed in general and also is a pre-requisite for the performance issue in destination plugins that will require breaking change in the destination protocol.