Hi Jens,

1) I have a branch where I added Dart `make` support by modifying
configure.ac and lib/Makefile.am, test/Makefile.am, and
tutorial/Makefile.am, and adding the Dart Makefile.am files.  It looks like
it's working (it will properly include / exclude Dart, depending on
presence of Dart SDK binaries), so I'll get that in after it's code
reviewed.  That will work with the current autotools, but it sounds like
there is more to do for CMake.

2) Thanks, I'll just add the Dart specific bits to the appropriate
subdirectories, as you suggested.

3) I'm working on the integration test now, so I should have something done
soon.

4) I'm not sure yet what you mean by connecting the tutorial to `make
check`.  If you have an example you could point me to, or could expand on
that, it would be appreciated.

Thanks,

Mark





*Mark Erickson*
*Senior Software Engineer*
Workiva Inc.

2900 University Blvd, Ames, IA  50010
Email: mark.erick...@workiva.com
Mobile: 515.257.6865

On Mon, Sep 21, 2015 at 3:30 PM, Jens Geyer <jensge...@hotmail.com> wrote:

> Hi Mark,
>
> (1) The current status quo is that the 0.9.3 release will still rely on
> autotools as the primary build system, while the next release very likely
> will be based on CMake. There is already some work done, but I personally
> don’t have the full overview about the current status of the CMake support,
> so you may ask for the details on the mailing list if such becomes
> necessary. I’ll cross-post this to the dev-list.
>
>
> (2) Moving entries to /.gitignore would be good.
>
> > avoid unintentional side-effects with other languages, by ignoring
> `packages`, for instance
>
> Should be possible by means of entries that exclude only files in a given
> subfolder, similar to
>
>     /lib/csharp/**/bin/
>     /lib/delphi/test/*.dcu
>
> (3) The ThriftTest integration test is a cornerstone of Thrift. If the
> Dart code is compatible with Dart, well that’s a good start. ;-) but not
> really sufficient. As always, the devil’s in the details. The ThriftTest is
> designed to validate cross-language and cross-platform compatibility in a
> standardized manner. And it gives us reviewers something to play with,
> besides the (comparingly simple) tutorial stuff.
>
> Some form of a self-test is usually included when “make check” is run,
> typically a server/client pair of that language (given you have a server,
> of course) using the ThriftTest integration test code. A question that
> frequently raises is the location of the tests. This has evolved over time,
> and the current consensus and rule-of-thumb is this:
>
>     (a) the ThriftTest integration test should be placed under /test/<lang>
>     (b) any other, especially language-specific tests, should be placed
> under /lib/<lang>/test
>
>
> > we don't plan to implement a full Dart Thrift server implementation
> yet.  [...] using Dart for a server is far less common.
>
> I think that’s fine.
>
>
> (4) suggestions
>
> Would it be possible to connect the tutorial to “make check” as well? That
> would be awesome.
>
> Have fun,
> JensG
>
>
> *From:* Mark Erickson <mark.erick...@workiva.com>
> *Sent:* Monday, September 21, 2015 1:08 AM
> *To:* Jens Geyer <jensge...@hotmail.com>
> *Cc:* Steven Osborne <steven.osbo...@workiva.com>
> *Subject:* Re: Fw: [GitHub] thrift pull request: THRIFT-3299 Dart
> language bindings in Thrift
>
> Hi Jens,
>
> 1) I did not intentionally introduce a dependency on CMake.  My changes to
> build files resulted from looking for usages of `as3`, and adding Dart
> support where it seemed appropriate.  I may have missed something here?
>
> 2) I can move the .gitignore entries for Dart to the main file.  I added a
> local file to avoid unintentional side-effects with other languages, by
> ignoring `packages`, for instance.  But it looks like it should be fine to
> move it to the root file.
>
> 3) That's correct, we have not implemented the ThriftTest integration test
> yet.  We can work on this - it looks like the php implementation is pretty
> straightforward, so I might start from that.  Like the php test, the Dart
> would only test the client, since we don't plan to implement a full Dart
> Thrift server implementation yet.  Of course someone else could add this
> later, but using Dart for a server is far less common.
>
> Thank you for looking at the Dart PR.  Please let us know if you have any
> other questions or suggestions.  Thanks,
>
> Mark
>
>
> *Mark Erickson*
> *Senior Software Engineer*
> Workiva Inc.
>
>
> On Sat, Sep 19, 2015 at 7:36 AM, Jens Geyer <jensge...@hotmail.com> wrote:
>
>> Hi Mark,
>>
>> a few comments, just trying to get it running on my machine.
>>
>> 1) Looks as if I have to use CMake? Just asking ... no need to panic. :-)
>> 2) We usually don't use local .gitgnore files, only one in the root folder
>> 3) I found the tutorial, but the integration test (ThriftTest.thrift) is
>> probably still work in progress?
>>
>> Thanks + keep up the good work,
>> JensG
>>
>>
>>
>> -----Ursprüngliche Nachricht----- From: stevenosborne-wf
>> Sent: Thursday, September 17, 2015 9:24 PM
>> To: dev@thrift.apache.org
>> Subject: [GitHub] thrift pull request: THRIFT-3299 Dart language bindings
>> in Thrift
>>
>> GitHub user stevenosborne-wf opened a pull request:
>>
>>    https://github.com/apache/thrift/pull/608
>>
>>    THRIFT-3299 Dart language bindings in Thrift
>>
>>    Description: Add bindings for [dart](https://www.dartlang.org/).
>>
>>    Ticket: https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>
>> You can merge this pull request into a Git repository by running:
>>
>>    $ git pull https://github.com/markerickson-wf/thrift thrift-dart
>>
>> Alternatively you can review and apply these changes as the patch at:
>>
>>    https://github.com/apache/thrift/pull/608.patch
>>
>> To close this pull request, make a commit to your master/trunk branch
>> with (at least) the following in the commit message:
>>
>>    This closes #608
>>
>> ----
>> commit 97dcdf2636f9f718c4bb9040ec866635004ac13b
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-08-29T15:46:51Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Added t_dart_generator.cc and add as a target for Make.
>>
>> commit 11473fd2c44692d0fd782dca9d3fa602534eb0ac
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-08-30T01:08:18Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Cleanup some issues in the generator found while analyzing generated
>> code.
>>
>> commit 221f6042369b39998567909759d6350c8914a97d
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-08-30T01:23:28Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Initial port of library code, except for transport implementations.
>>
>> commit bc73baef3707be82907825c16976b6c856e5ea33
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T04:05:30Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Minor tweaks to the dart generator
>>
>> commit fc049c05cf617f6c689b40c278288e48a85e9371
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T04:09:24Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Added binary and JSON protocols.  Added WebSocket transport.
>>
>> commit 495c0dd068c92e1125256e42ac2f355786f53799
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T18:18:03Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Switch service generation of service server code to opt-in instead of
>> opt-out.
>>
>> commit ecce9715401834bafeb94e23c9dd4772be066204
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T18:37:16Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Added THttpTransport and a did little refactoring.
>>
>> commit a01e06af071927f878c39b4c1f9b44c177fd775f
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T20:28:42Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Added BufferedTransport and FramedTransport, with some refactoring.
>>
>> commit 84e8763249b4233a0c18e69848eb86eaabcde638
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T21:14:56Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Added MultiplexedProtocol.
>>
>> commit 08d0ce2fdf915c7f23fb8e48a92ffdd16589e16d
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-04T21:25:08Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Ran dartfmt.
>>
>> commit c410c6d85806489a17f844fab853461104e94ab6
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-05T03:11:31Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Optimizations when using List.length since the base implementation
>> iterates over elements in the getter.
>>
>> commit 6195d227d9357028b0f6da18cf3d77ff692fcfcd
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-06T16:57:46Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Fix BufferedTransport.flush to be able to read from the write buffer.
>>
>> commit e186fb68fa8c08297283cab0a59dd54c48a8ba9c
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-08T15:05:56Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Fix typo in Dart SDK requirement
>>
>> commit 017cbd7c4fb2436513db4a4bf5e2c65a82fb973f
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-08T15:52:56Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Add pubspec.yaml to generated files.
>>
>> commit e347643f476545f9a7686aaafe89c2b967e1fd3b
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-08T20:07:43Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Fix generation problems exposed by tutorial specification, related to
>> inheritance and constants.
>>
>> commit 21b97b2c76f1ff4ba973502a9e4cbf44d5cdf82b
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-08T21:59:18Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Initialize seqid and increment when client writes message begin.
>>
>> commit dbf2878d7b89c3fb60e10f6a739e68b7ea8c25c9
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-10T16:11:19Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    In progress.  Initial stab at tutorial implementation, with known
>> issues.  Changed socket interface for open / close to be async.  Added
>> support for sockets that are listening for messages (server).
>>
>> commit db111aecb8ccecc37a49af600db5cbb3f2c03449
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T03:10:13Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Fix bugs in binary protocol and json protocol.  Use base 64 encoding
>> for socket and http transports.  Implement the remainder of the tutorial.
>>
>> commit be267afeb2ccb49ede2fd80708f6f060ae8b0b9d
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T03:14:22Z
>>
>>    Merge branch 'master' into thrift-dart
>>
>> commit c18f92c4297db61a404617675191b0ecd3034d15
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T18:20:10Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Make pubspec dependencies more consistent and restrictive.
>>
>> commit 3e763612f528afb117bc8284c938dbee9944a272
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T20:12:08Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Switch uses of List<int> to Uint8List to be more explicit.
>>
>> commit 4c74741fcc0e679943a4129ea9f6dbeecef8f488
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T20:50:41Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Complete with error when a socket is closed.  Minor code cleanup.
>>
>> commit 1cbb3eb44f5219818c8e9229f0fe26a78a376d3c
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-11T23:22:55Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Writing unit tests.  A little code cleanup.
>>
>> commit d97bcc1b63dc80a8415e102d484cd4cbfb1df16a
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-12T02:23:30Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    JSON protocol unit tests.  Changed binary type to Uint8List.  Cleaned
>> up tutorial shell script.
>>
>> commit e236093ee74ff44742fcfdb4971e135f70fa672c
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-12T04:00:00Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Protocol and transport unit tests.
>>
>> commit 8d74526a67a5d4fb583d8dc009eb33b5c7e728ad
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-14T15:23:09Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Move completer logic from WebSocket implementations to transport.
>> Split TSocketTransport into TClientSocketTransport and
>> TServerSocketTransport to cleanup some conditional logic.
>>
>> commit 4a5197e97fa504e33c2e020a1be5c8f10e8318ca
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-14T16:17:21Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Move Base 64 encoding out of transport and back into web_socket
>> implementations.
>>
>> commit cd83635f4ae688d2ae65d474790a213294576d15
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-14T16:35:52Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Return Futures from open and close that actually reflect the state of
>> the WebSocket.
>>
>> commit 7bacb040c0cde5f35c9ec0ea3135d0ed1d79eae0
>> Author: Mark Erickson <mailto:mark.erickson%2bgit...@workiva.com
>> <mark.erickson%2bgit...@workiva.com>>
>> Date:   2015-09-14T17:34:19Z
>>
>>    Merge pull request #2 from markerickson-wf/socket-transport
>>
>>    Cleanup TSocketTransport and related code
>>
>> commit 544834b073f253935b4ee96f8f805632083fb1c1
>> Author: Mark Erickson <mark.erick...@workiva.com>
>> Date:   2015-09-14T20:48:01Z
>>
>>    Create an Apache Thrift language binding for Dart (dartlang.org).
>>    https://issues.apache.org/jira/browse/THRIFT-3299
>>
>>    Avoid using String.codeUnits as a Uint8List.  Cleanup bad type
>> assignments in tutorial client.
>>
>> ----
>>
>>
>> ---
>> If your project is set up for it, you can reply to this email and have
>> your
>> reply appear on GitHub as well. If your project does not have this feature
>> enabled and wishes so, or if the feature is enabled but not working,
>> please
>> contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
>> with INFRA.
>> ---
>>
>
>

Reply via email to