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

Yuxuan Wang commented on THRIFT-5358:
-------------------------------------

"We" means the people doing the release.

So the extra git tagging with "lib/go/thrift/" prefix will be the extra step 
needed for the go library release. It should be equivalent to the extra steps 
needed by other language libraries: build and publish the .jar to maven; build 
and publish the python library to pypi; etc. We didn't need any extra step for 
go library release before because we don't have go.mod file under lib/go/thrift 
(we don't have go.mod file at all). But that step will be needed once we have 
it there.

I don't see the extra steps for other language libraries documented in 
ReleaseManagement.md file, but most of them are happened outside/independent of 
the git repository, so that seems understandable.

This issue is not a regression of 0.14.0. We are not currently breaking any of 
our users using go1.16+ either, so I don't see why this needs to be included in 
0.14.1 release. But if I can finish this work before 0.14.1 release and we are 
confident enough that it works correctly, we can include it in 0.14.1 (I still 
think that's unnecessary but I don't feel strongly). The importance of this 
issue is mainly on that it currently is annoying for go developers on go1.16+ 
trying to make changes to our go library (lib/go/thrift/*.go).

Also that extra release step for go library may not be needed in the end. I 
originally planned to put the go.mod file under lib/go/thrift because I wanted 
to avoid putting it under the root directory. But since go1.17 will refuse to 
do anything when there's no go.mod file, if we don't have go.mod file under 
root the CI will stop working after we migrated CI to go1.17+. So maybe in the 
end just a single go.mod file at the root will work better than having two 
files, one under root for CI and one under lib/go/thrift for the library. I'll 
play around to see which works better.

> Add go.mod file(s)
> ------------------
>
>                 Key: THRIFT-5358
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5358
>             Project: Thrift
>          Issue Type: Task
>          Components: Go - Library
>    Affects Versions: 0.14.0
>            Reporter: Yuxuan Wang
>            Priority: Major
>
> Go 1.16 already disallowed building without go.mod file by default (still 
> override-able with GO111MODULES=auto environment variable), and Go 1.17 will 
> remove that override option, so we need to add go.mod file(s) to unblock 
> developers working on tip and using Go 1.16+.
> Based on the current discussion on https://github.com/golang/go/issues/34055, 
> we probably will need to add 2 go.mod files:
> # one under lib/go/thrift for our users to use. A release process change is 
> also required because of this file: for all the future releases, we would 
> need to double tag with "lib/go/thrift/" prefix (e.g. for 0.15.0 release we 
> would need to git tag "v0.15.0" and "lib/go/thrift/v0.15.0" on the same 
> commit)
> # another under root for the tests to work on Go 1.16+



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

Reply via email to