[
https://issues.apache.org/jira/browse/THRIFT-4261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102695#comment-16102695
]
Can Celasun commented on THRIFT-4261:
-------------------------------------
{quote}1. support backward compatibility for old function signature for some
time, so it won't break the project{quote}
The old signature will still be supported forever by 0.93 and 0.10. If we want
to add context support (and we do), we _have_ to break BC sometime. I don't see
what would we gain by doing it in, say, 0.12 instead of 0.11. We would still
have the issue.
For your example with "project A depends on project AB and project AC", I would
ask project AB to upgrade to 0.11 and until they do, I would use an older
version of AC that supports 0.10. This situation is _very_ common in many
languages, I don't see why Go needs special treatment here.
{quote}cut a major version and ask everyone to update{quote}
Thrift doesn't follow semver, so 0.11 _is_ the next major version, which should
be tagged soon.
> Go context generation issue: breaking change in generated code regarding
> thrift.TProcessorFunction interface
> ------------------------------------------------------------------------------------------------------------
>
> Key: THRIFT-4261
> URL: https://issues.apache.org/jira/browse/THRIFT-4261
> Project: Thrift
> Issue Type: Bug
> Components: Go - Compiler, Go - Library
> Environment: generated code for Golang
> Reporter: Yicheng Qin
> Assignee: Jens Geyer
> Fix For: 0.11.0
>
>
> I observe the breaking change in `thrift.TProcessorFunction` interface that
> adds a `Context` parameter, and corresponded breaking change in the generated
> client code.
> So the generated code from v0.9 thrift compiler can no longer run with the
> master thrift library.
> I understand you expect that we should use the same version of compiler and
> library for the same repository. But this is super hard in reality:
> 1. Lots of repos store the generated code, e.g.,
> https://github.com/uber/jaeger-client-go/blob/master/thrift-gen/jaeger/agent.go
> . So it could use either old interface or new interface.
> 2. Go projects always use `glide` as version management, which uses single
> version for one library across the repository. If one dep relies on old
> interface, and one dep relies on new interface, the project will totally
> break.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)