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

Reply via email to