On 11/9/2015 at 1:32 PM, "Tom Deering" <[email protected]> wrote: > >Thanks, Ben. I understand the "be liberal in what you accept" >philosophy >that allows mismatched versions of a Thrift client and server to >talk >(regardless of whether that's a good idea ><https://techblog.workiva.com/tech-blog/postel%E2%80%99s-cycle>). >It seems >that you're suggesting, therefore, that pinning specific versions >of >external Thrift dependencies is unnecessary because due to >interoperability. > >However, I don't see that this solves the problem of generating >code from >Thrift files that have external includes (unless I keep a copy of >them >locally like you suggest).
Maybe I'm not understanding your problem... I'm assuming by "external dependencies" you mean structs, enums, unions, typedefs, exceptions, or parent services contained is some other thrift file than the one you are compiling against... please correct me if I am wrong When you are generating code with "external dependencies", how are you "including" those files if you don't have them locally? AFAIK when you invoke the Thrift compiler you're operating on local files. So when you generate either your clients or your servers in whatever language, you're operating on some local file. >I was hoping for a solution that lets >each >service be the source of truth for the single copy of its own >Thrift >definition instead of keeping copies within dependent services. > Perhaps you could give a more concrete example of what you mean... you said this problem is solved in most programming languages already... maybe framing it in terms of another language that has solved this already would be helpful Thanks Ben
