[
https://issues.apache.org/jira/browse/THRIFT-4261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101296#comment-16101296
]
Jens Geyer commented on THRIFT-4261:
------------------------------------
{quote}One option IMO is to support backward compatibility for old function
signature, so it won't break the project{quote}
Hi [~taozle] & [~calcifer], could you revisit your changes and evaluate that
suggested solution?
{quote}Another option is to cut a major version and ask everyone to
update.{quote}
Let me summarize it to see if I got this right:
* Thrift uses a master branch for development, i.e. that's where we add new
features
* When we are ready for a release, we cut a release branch and publicize all
the assets belonging to it
* The Go community has agreed upon that version branches are for loosers and
decides to always use cutting edge master code, even at the risk of introducing
breaking changes by using yet officially unreleased code in their production
code
Question: If we decide that master/trunk is the new release, where do we
integrate new features? I mean we can easily set up a developmentmaster branch
that is used for development then, instead of master. That developmentmaster is
only merged into the real master when we do a release ... until someone
decides to use that branch for production code. Then we just create a third one
and move on.
Is that what you are saying?
> 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
> Environment: generated code for Golang
> Reporter: Yicheng Qin
>
> 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)