You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2020/12/08 23:31:00 UTC

[jira] [Comment Edited] (THRIFT-4685) Support the new golang modules (1.11 or later)

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

Jens Geyer edited comment on THRIFT-4685 at 12/8/20, 11:30 PM:
---------------------------------------------------------------

The semantic versioning debate comes up every now and then. I can of course only speak for myself and I personally  see the benefits of semantic versioning. In a way Thrift is certainly special because it supports plenty of target languages which over time get improvements and expercience their own version jumps and quite often drop support for older versions of the language's toolchain and/or ecosystem.

Also I want to emphasize that the Thrift wire formats are still compatible (even though we marked certain things deprecated already) and that is IMHO what counts more and therefore should be our primary concern, because that's the common thing across languages. Having different versions for parts of the library will - in my opinion - only add more confusion and problems than it solves: Can I combine a Go client built against library 4.7.8 with a cpp server built against library 1.33.0 and should I use the 0.13.0 compiler or the 1.12.7 compiler? Hard to tell ...

> is v0.9.3 a LTS version or something?

It just happens to be a stable version that is used a lot. There is no special support for it. It's also recommended to use a more recent version if you can. Wire format is still compatible, of course.

 


was (Author: jensg):
The semantic versioning debate comes up every now and then. I can only speck for myself and I personally  see the benefits of semantic versioning. In a way Thrift is certainly special because it supports plenty of target languages which over time get improvements and expercience their own version jumps and quite often drop support for older versions of the language's toolchain and/or ecosystem.

Alos note that the Thrift wire formats are still compatible (even though we marked certain things deprecated already) and that is IMHO what counts more and therefore should be our primary concern, because that's the common thing across languages. Having different versions for parts of the library will - in my opinion - only add more confusion and problems than it solves: Can I combine a Go client built against library 4.7.8 with a cpp server built against library 1.33.0 and should I use the 0.13.0 compiler or the 1.12.7 compiler? Hard to tell ...

> is v0.9.3 a LTS version or something?

It just happens to be a stable version that is used a lot. There is no special support for it. It's also recommended to use a more recent version if you can. Wire format is still compatible, of course.

 

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