[ 
https://issues.apache.org/jira/browse/THRIFT-4261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102230#comment-16102230
 ] 

Jens Geyer commented on THRIFT-4261:
------------------------------------

{quote}
If you are suggesting that master [...] should never ever break BC with any 
released version ever, I'm afraid that's not realistic as it would 
significantly hinder development.{quote}

And that is exactly my point above. Glad I'm not the only one. Because 
following that suggestion would essentially prevent us from doing /any/ 
improvements ever that may result in breaking changes. We absolutely strive to 
minimize such events, but we need at least some place, where we can do it. And 
this place is the developmemt master/trunk branch in every project, which 
exists exactly for that purpose.

Going to close this as WONTFIX. If anyone has new insights, feel free to reopen 
and/or share your thoughts (comments can be made even at closed tickets).


> 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: taozle
>             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)

Reply via email to