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

Yuxuan Wang commented on THRIFT-4685:
-------------------------------------

>(1) Create go.mod in repository root.

I'm not opposite to this, but it likely will kill the 
"git.apache.org/thrift.git/lib/go/thrift" workaround because the newly added 
go.mod file no longer matches the import path.

>(2) Whenever incompatible change is made, move all files to /vN, create new 
>go.mod, and update compiler accordingly.

"Whenever" is the keyword here. If we truly do that "whenever", then the go 
libraries will have a different versioning scheme from the whole project 
quickly. Actually if you look into the protobuf example your cited, they are 
not sharing the same repo between go api and the rest of protobuf: v1 is on 
https://github.com/golang/protobuf and v2 is on 
https://github.com/protocolbuffers/protobuf-go. With separated repository of 
course it's easy and trivial for them to have separated versioning scheme, but 
in thrift's case every language library share the same repository, so we cannot 
really do that.

Like others said above, if we really want to do versioning on the go library 
api, what we need to do is:

1. Change thrift's versioning scheme from v0.minor to major versions (e.g. the 
next release will be v14.0.0 instead of v0.14.0)
2. Change go library's import path on every release to match the major version, 
regardless whether there are breaking changes or not.

> Support the new golang modules (1.11 or later)
> ----------------------------------------------
>
>                 Key: THRIFT-4685
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4685
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Go - Library
>    Affects Versions: 0.12.0
>         Environment: golang 1.11 or later
>            Reporter: James E. King III
>            Assignee: Duru Can Celasun
>            Priority: Minor
>
> Go added new module support in 1.11, see:
> https://github.com/golang/go/wiki/Modules
> We should move towards it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to