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