You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by Chamila Wijayarathna <cd...@gmail.com> on 2014/03/04 19:42:06 UTC

Thrift Protocol Compatibility with various Languages

Hello all,
I ran "test/test.sh" and got [1] as result. In [2], it says that ruby
supports both binary and compact protocols. So why I am not getting rb-rb
results with compact protocol in [1]?
If [2] is not accurate, from where can I found a better language to
protocol compatibility mapping details? Is there any resource for transport
compatibility with languages ?

1.https://gist.github.com/cdwijayarathna/9352126
2.
http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compatibility.png

Thank you!

-- 
*Chamila Dilshan Wijayarathna,*
SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering,
University of Moratuwa.

Re: Thrift Protocol Compatibility with various Languages

Posted by Chamila Wijayarathna <cd...@gmail.com>.
Hi Roger,
I hope you go through the To-Do list for cross language testing [1] I
created. In this I only added client-server-protocol-transport
combinations. Do we need to run test with different sockets also? In
current test cases it run the same client-server-protocol-transport on
different sockets like 'ip, ip-ssl, domain'.
I am currently working on identifying which test cases are already there,
so then I can have a clear view of what is remaining to do.
Also since GSoC proposal period is starting on next week, I'd like to know
more about automate reporting scenario, so I can have a plan for it.

1.
https://docs.google.com/spreadsheet/ccc?key=0AolXxLs9J7hydEFMVmRmNl9RY3MwVFNtbnJSM2ZOSUE#gid=0

Thank You!


On Fri, Mar 7, 2014 at 2:27 AM, Roger Meier <ro...@bufferoverflow.ch> wrote:

> Yes, that's the way to go.
>
>
>
> Automation and scripting is key.
>
> You really need to add a language or cross-language combination at a time.
>
> Some TestClients and TestServers need some rework and do probably not
> cover all language features and thrift types.
>
> The goal is to automate reporting as well, I would love to have a test/
> status.md file at the end and integrate that on the web site.
>
>
>
> We can create a dedicated JIRA issue for this story and add subtasks for
> the individual topics as soon as we have that gsoc stuff up and running.
>
>
>
> -roger
>
>
>
> *From:* Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com]
> *Sent:* Mittwoch, 5. März 2014 18:53
> *To:* dev@thrift.apache.org; Roger Meier
> *Subject:* Re: Thrift Protocol Compatibility with various Languages
>
>
>
> Hi Roger,
>
> Thanks for replying.
>
> Can I assume all server-client-protocol-transport combinations I got by
> running test/test.sh[1] are completed or do I have to check those tests too?
>
> So for now, as I understood, we have following languages, protocols and
> transports.
>
>
>
> *Languages -*
>
>    1. C++
>    2. Java
>    3. C
>    4. C#
>    5. Ruby
>    6. Objective-C
>    7. JavaScript
>    8. Node.js
>    9. Erlang
>    10. Perl
>    11. PHP
>    12. Python
>    13. OCaml
>    14. Haskell
>    15. Go
>    16. Cocoa
>    17. Smalltalk
>    18. Delphi
>
> *Protocols *-
>
>    1. binary
>    2. compact
>    3. json
>
> *Transports - *
>
>    1. buffered
>    2. framed
>    3. fast-framed
>    4. http
>
> Please add if I am missing something here.
>
> So I am planning to create a to-do list of project as in [2] for the 'cross
> language test suite'. I will add all server - client - protocol - transport
> combinations to this and fill each cell with current progress of each test.
> I am planning to keep cells corresponding to tests which are not currently
> in test suite and I have no idea if those combinations are compatible. I
> have share this with developer list, so others can see this and they can
> also give suggestions relating to each combination (Like these protocols
> not support these languages, etc.)
>
> This is the plan I have for now, please give your feedback on this.
>
> 1. https://gist.github.com/cdwijayarathna/9352126
>
> 2.
> https://docs.google.com/spreadsheet/ccc?key=0AolXxLs9J7hydEFMVmRmNl9RY3MwVFNtbnJSM2ZOSUE#gid=0
>
>
>
> Thank You.
>
>
>
> On Wed, Mar 5, 2014 at 2:38 AM, Roger Meier <ro...@bufferoverflow.ch>
> wrote:
>
> You got it!
>
> That's exactly the task, complete the cross language test suite and
> generate
> a feature and compatibility matrix that can be included easily by the
> Apache
> Thrift web site. => Generate reliable information on compatibility and
> features. + documentation
>
> Many languages and features are only covered by their unit tests usually
> located under lib/<lang>/test
>
> The cross language test suite uses the reference test data from
> test/ThriftTest.thrift
> It probably needs some alignments to cover all features.
> ... documenting the Apache Thrift features within the test suite would be
> another addon here.
>
> initial doc is at test/README.md:
>
> https://git-wip-us.apache.org/repos/asf/thrift/repo?p=thrift.git;a=blob;f=te
> st/README.md;hb=HEAD
>
> things like doc, html or xml/json schema generation is also not covered by
> tests yet
>
> thanks!
> -roger
>
>
> -----Original Message-----
> From: Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com]
> Sent: Dienstag, 4. März 2014 19:42
> To: dev@thrift.apache.org
> Subject: Thrift Protocol Compatibility with various Languages
>
> Hello all,
> I ran "test/test.sh" and got [1] as result. In [2], it says that ruby
> supports both binary and compact protocols. So why I am not getting rb-rb
> results with compact protocol in [1]?
> If [2] is not accurate, from where can I found a better language to
> protocol
> compatibility mapping details? Is there any resource for transport
> compatibility with languages ?
>
> 1.https://gist.github.com/cdwijayarathna/9352126
> 2.
>
> http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compati
> bility.png
>
> Thank you!
>
> --
>
> *Chamila Dilshan Wijayarathna,*
>
> SMIEEE, SMIESL,
> Undergraduate,
> Department of Computer Science and Engineering, University of Moratuwa.
>
>
>
>
>
> --
> *Chamila Dilshan Wijayarathna,*
> SMIEEE, SMIESL,
> Undergraduate,
> Department of Computer Science and Engineering,
> University of Moratuwa.
>



-- 
*Chamila Dilshan Wijayarathna,*
SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering,
University of Moratuwa.

RE: Thrift Protocol Compatibility with various Languages

Posted by Roger Meier <ro...@bufferoverflow.ch>.
Yes, that’s the way to go.

 

Automation and scripting is key.

You really need to add a language or cross-language combination at a time.

Some TestClients and TestServers need some rework and do probably not cover
all language features and thrift types.

The goal is to automate reporting as well, I would love to have a
test/status.md file at the end and integrate that on the web site.

 

We can create a dedicated JIRA issue for this story and add subtasks for the
individual topics as soon as we have that gsoc stuff up and running.

 

-roger

 

From: Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com] 
Sent: Mittwoch, 5. März 2014 18:53
To: dev@thrift.apache.org; Roger Meier
Subject: Re: Thrift Protocol Compatibility with various Languages

 

Hi Roger,

Thanks for replying.

Can I assume all server-client-protocol-transport combinations I got by
running test/test.sh[1] are completed or do I have to check those tests too?

So for now, as I understood, we have following languages, protocols and
transports.

 

Languages - 

1.	C++
2.	Java
3.	C
4.	C#
5.	Ruby
6.	Objective-C
7.	JavaScript
8.	Node.js
9.	Erlang
10.	Perl
11.	PHP
12.	Python
13.	OCaml
14.	Haskell
15.	Go
16.	Cocoa
17.	Smalltalk
18.	Delphi

Protocols - 

1.	binary
2.	compact
3.	json

Transports - 

1.	buffered
2.	framed
3.	fast-framed
4.	http

Please add if I am missing something here.

So I am planning to create a to-do list of project as in [2] for the 'cross
language test suite'. I will add all server - client - protocol - transport
combinations to this and fill each cell with current progress of each test.
I am planning to keep cells corresponding to tests which are not currently
in test suite and I have no idea if those combinations are compatible. I
have share this with developer list, so others can see this and they can
also give suggestions relating to each combination (Like these protocols not
support these languages, etc.)

This is the plan I have for now, please give your feedback on this.

1. https://gist.github.com/cdwijayarathna/9352126

2.
https://docs.google.com/spreadsheet/ccc?key=0AolXxLs9J7hydEFMVmRmNl9RY3MwVFN
tbnJSM2ZOSUE#gid=0

 

Thank You.

 

On Wed, Mar 5, 2014 at 2:38 AM, Roger Meier <roger@bufferoverflow.ch
<ma...@bufferoverflow.ch> > wrote:

You got it!

That's exactly the task, complete the cross language test suite and generate
a feature and compatibility matrix that can be included easily by the Apache
Thrift web site. => Generate reliable information on compatibility and
features. + documentation

Many languages and features are only covered by their unit tests usually
located under lib/<lang>/test

The cross language test suite uses the reference test data from
test/ThriftTest.thrift
It probably needs some alignments to cover all features.
... documenting the Apache Thrift features within the test suite would be
another addon here.

initial doc is at test/README.md:
https://git-wip-us.apache.org/repos/asf/thrift/repo?p=thrift.git;a=blob;f=te
<https://git-wip-us.apache.org/repos/asf/thrift/repo?p=thrift.git;a=blob;f=t
est/README.md;hb=HEAD> 
st/README.md;hb=HEAD

things like doc, html or xml/json schema generation is also not covered by
tests yet

thanks!
-roger


-----Original Message-----
From: Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com
<ma...@gmail.com> ]
Sent: Dienstag, 4. März 2014 19:42
To: dev@thrift.apache.org <ma...@thrift.apache.org> 
Subject: Thrift Protocol Compatibility with various Languages

Hello all,
I ran "test/test.sh" and got [1] as result. In [2], it says that ruby
supports both binary and compact protocols. So why I am not getting rb-rb
results with compact protocol in [1]?
If [2] is not accurate, from where can I found a better language to protocol
compatibility mapping details? Is there any resource for transport
compatibility with languages ?

1.https://gist.github.com/cdwijayarathna/9352126
2.
http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compati
<http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compat
ibility.png> 
bility.png

Thank you!

--

*Chamila Dilshan Wijayarathna,*

SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering, University of Moratuwa.





 

-- 
Chamila Dilshan Wijayarathna,
SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering,
University of Moratuwa.


Re: Thrift Protocol Compatibility with various Languages

Posted by Chamila Wijayarathna <cd...@gmail.com>.
Hi Roger,
Thanks for replying.
Can I assume all server-client-protocol-transport combinations I got by
running test/test.sh[1] are completed or do I have to check those tests too?
So for now, as I understood, we have following languages, protocols and
transports.

*Languages -*

   1. C++
   2. Java
   3. C
   4. C#
   5. Ruby
   6. Objective-C
   7. JavaScript
   8. Node.js
   9. Erlang
   10. Perl
   11. PHP
   12. Python
   13. OCaml
   14. Haskell
   15. Go
   16. Cocoa
   17. Smalltalk
   18. Delphi

*Protocols *-

   1. binary
   2. compact
   3. json

*Transports - *

   1.
*buffered *
   2. *framed*
   3. *fast-framed*
   4. *http*

Please add if I am missing something here.
So I am planning to create a to-do list of project as in [2] for the 'cross
language test suite'. I will add all server - client - protocol - transport
combinations to this and fill each cell with current progress of each test.
I am planning to keep cells corresponding to tests which are not currently
in test suite and I have no idea if those combinations are compatible. I
have share this with developer list, so others can see this and they can
also give suggestions relating to each combination (Like these protocols
not support these languages, etc.)
This is the plan I have for now, please give your feedback on this.
1. https://gist.github.com/cdwijayarathna/9352126
2.
https://docs.google.com/spreadsheet/ccc?key=0AolXxLs9J7hydEFMVmRmNl9RY3MwVFNtbnJSM2ZOSUE#gid=0

Thank You.


On Wed, Mar 5, 2014 at 2:38 AM, Roger Meier <ro...@bufferoverflow.ch> wrote:

> You got it!
>
> That's exactly the task, complete the cross language test suite and
> generate
> a feature and compatibility matrix that can be included easily by the
> Apache
> Thrift web site. => Generate reliable information on compatibility and
> features. + documentation
>
> Many languages and features are only covered by their unit tests usually
> located under lib/<lang>/test
>
> The cross language test suite uses the reference test data from
> test/ThriftTest.thrift
> It probably needs some alignments to cover all features.
> ... documenting the Apache Thrift features within the test suite would be
> another addon here.
>
> initial doc is at test/README.md:
>
> https://git-wip-us.apache.org/repos/asf/thrift/repo?p=thrift.git;a=blob;f=te
> st/README.md;hb=HEAD
>
> things like doc, html or xml/json schema generation is also not covered by
> tests yet
>
> thanks!
> -roger
>
> -----Original Message-----
> From: Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com]
> Sent: Dienstag, 4. März 2014 19:42
> To: dev@thrift.apache.org
> Subject: Thrift Protocol Compatibility with various Languages
>
> Hello all,
> I ran "test/test.sh" and got [1] as result. In [2], it says that ruby
> supports both binary and compact protocols. So why I am not getting rb-rb
> results with compact protocol in [1]?
> If [2] is not accurate, from where can I found a better language to
> protocol
> compatibility mapping details? Is there any resource for transport
> compatibility with languages ?
>
> 1.https://gist.github.com/cdwijayarathna/9352126
> 2.
>
> http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compati
> bility.png
>
> Thank you!
>
> --
> *Chamila Dilshan Wijayarathna,*
> SMIEEE, SMIESL,
> Undergraduate,
> Department of Computer Science and Engineering, University of Moratuwa.
>
>


-- 
*Chamila Dilshan Wijayarathna,*
SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering,
University of Moratuwa.

RE: Thrift Protocol Compatibility with various Languages

Posted by Roger Meier <ro...@bufferoverflow.ch>.
You got it!

That's exactly the task, complete the cross language test suite and generate
a feature and compatibility matrix that can be included easily by the Apache
Thrift web site. => Generate reliable information on compatibility and
features. + documentation

Many languages and features are only covered by their unit tests usually
located under lib/<lang>/test

The cross language test suite uses the reference test data from
test/ThriftTest.thrift
It probably needs some alignments to cover all features.
... documenting the Apache Thrift features within the test suite would be
another addon here.

initial doc is at test/README.md:
https://git-wip-us.apache.org/repos/asf/thrift/repo?p=thrift.git;a=blob;f=te
st/README.md;hb=HEAD

things like doc, html or xml/json schema generation is also not covered by
tests yet

thanks!
-roger

-----Original Message-----
From: Chamila Wijayarathna [mailto:cdwijayarathna@gmail.com] 
Sent: Dienstag, 4. März 2014 19:42
To: dev@thrift.apache.org
Subject: Thrift Protocol Compatibility with various Languages

Hello all,
I ran "test/test.sh" and got [1] as result. In [2], it says that ruby
supports both binary and compact protocols. So why I am not getting rb-rb
results with compact protocol in [1]?
If [2] is not accurate, from where can I found a better language to protocol
compatibility mapping details? Is there any resource for transport
compatibility with languages ?

1.https://gist.github.com/cdwijayarathna/9352126
2.
http://www.cerebiggum.com/wp-content/uploads/2011/07/Thrift-Protocol-Compati
bility.png

Thank you!

--
*Chamila Dilshan Wijayarathna,*
SMIEEE, SMIESL,
Undergraduate,
Department of Computer Science and Engineering, University of Moratuwa.