uber / tchannel-go

Go implementation of a multiplexing and framing protocol for RPC calls
http://uber.github.io/tchannel/
MIT License
488 stars 82 forks source link

Lock down version of Apache Thrift to either 0.9.3 or 0.10.0 #608

Closed bufdev closed 6 years ago

bufdev commented 7 years ago

Apache Thrift changed the outputted data structure from map[T]bool to map[T]struct{} for set<T> from version 0.9.3 to 0.10.0. This repository does not lock down the version of thrift used in glide, and does not enforce the version used to generate code.

https://github.com/yarpc/yarpc-go/issues/783

bufdev commented 7 years ago

@prashantv The only guidance is This version is based off apache/thrift@43fb34d with a couple of fixes, we need a specific version of github.com/apache/thrift that should be added to users' glide.yaml that matches https://github.com/uber/tchannel-go/releases/tag/thrift-v1.0.0-dev, which version is this?

dcelasun commented 7 years ago

Not sure if this issue is still relevant, but since Thrift 0.10.0, set<T> is represented with a slice []T (just like lists) and duplicate elements return an error at runtime.

prashantv commented 6 years ago

TChannel works either, and the glide.yaml specifies the following constraint:

- package: github.com/apache/thrift
  version: '>=0.9.3, <0.11.0'

I don't think TChannel needs to be pinned to a specific version, the APIs it uses are available in both, and so there's no need to make it more restrictive.