thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Can Celasun (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-4261) Go context generation issue: breaking change in generated code regarding thrift.TProcessorFunction interface
Date Thu, 27 Jul 2017 04:43:00 GMT

    [ 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)

Mime
View raw message