I'm trying to decide how and if our company should continue with Thrift.

We use Twisted [1] heavily. When Thrift and Protocol Buffers were released
last year we took a close look at both and decided to try working with
Thrift. The first task was to write a Python compiler that could produce
Twisted compatible Python code. Esteve Fernandez undertook to do that and
soon after submitted a patch (THRIFT-148) on Sept 23, 2008.

In the subsequent 5 months we've kept that patch up to date, improved it in
a few ways, and have been using the code on a daily basis. We decided to
invest considerable energy/time/money into helping the Thrift project
overall, in the hope that by being good citizens - filing issues,
submitting patches, reviewing things, etc. we'd stand a better chance of
getting THRIFT-148 accepted.

In fact, Esteve has put way more effort into Thrift than I'd ever have
wanted. He's submitted patches for all sorts of things that we don't need
or use, in, I guess, 4 or 5 languages that we also don't use. It's gotten
complex maintaining a bunch of patches, so he's even maintaining his own
patch queue to handle the issues he's submitted and which we need in order
to use Thrift. Some of these patches are mutually incompatible. There has
been no subsequent release of Thrift, so every time it moves he has to go
do the work to make sure patches still work, update them, etc. We also
maintain our own Debian build of Thrift with a bunch of Python fixes
(including of course THRIFT-148, but also THRIFT-71, THRIFT-162 and
THRIFT-301). I.e., we're basically maintaining a parallel version of
Thrift, with Python patches applied, and making it available to anyone who
wants it. That turns out to be a lot of work.

We're a tiny 2-person (unfunded) startup, trying to focus on building our
own product. We just don't have the resources to keep devoting this level
of attention to Thrift. Plus, it feels like we keep giving and the things
we would really appreciate (and which, BTW, would instantly stop me from
sending occasional mails like this): the application of a few patches, seem
no closer to happening. When I try asking about them, there's no longer
even any reply.  I've tried asking a couple of times (10/15/08 and 11/8/08)
about THRIFT-148 and received no answer. I recently submitted a long
comment about it to JIRA (http://bit.ly/vGAs2) which went unanswered.

Meanwhile, based on his THRIFT-148 work, Esteve built txAMQP [2]. It lets
you make method calls on remote machines using Thrift, going through an
AMQP [3] along the way. It's pretty cool, and we open sourced it. A talk he
submitted to PyCon next month was accepted. So he'll show up, tell people
about this powerful combination of 3 nice technologies, and when people ask
how to get it he's going to have to explain that after 6 months the
critical Twisted patch to Thrift hasn't been accepted - along with a couple
of others - and that anyone wanting to use it should download Thrift and
patch it in various ways (or download from our PPA). That doesn't reflect
well on the Thrift development, at least as far as Python is concerned.
Yes, the main issue is Twisted, but there are 9 Thrift Python issues open,
all with patches attached, and they date from Aug 2nd, 2008.

After 5 months of trying, I'm not sure what to do next. Some options:

  - The easiest thing to do would be to just go quiet and leave the Thrift
    community.  We've put in a lot of effort, the code works great (sincere
    thanks to all!), the patches we need and which we've written work
    great, etc.  From my POV, given the time we're spending on keeping
    patches and a PPA up to date, I'd rather we gave up and focussed on
    stuff we really need to do.

  - We could just keep tracking Thrift, I could keep sending emails like
    this, etc. That's not really an option. It's too much work, and it's
    too frustrating.

  - We could announce that we have a fully Python-patched version of Thrift
    available for anyone who wants it, accept patches from others, etc. In
    effect that's what we're doing already. But it would be a great pity to
    diverge from Thrift by reviewing and accepting Python patches way ahead
    of the schedule by which Thrift incorporates Python patches, if ever.
    We could maintain "a patchy" version of Thrift and call it... oh, wait.

  - We even talk about seeing if putting some effort into Protocol Buffers
    might be more productive. They are right now mulling a C implementation
    of the Python API (http://bit.ly/J1b8q), and we could go help them.


That's it I guess. Like I said, I don't know what to do next. Apologies if
this sounds like I'm whining, threatening, or anything else negative. It's
not.  It's just someone trying to run a tiny company, seeing something that
despite a lot of effort does not seem to be working, and wondering out loud
what to do about it. Can I pay people to do code reviews of patches? :-( I
ask because right now I'm *already* paying someone to maintain a whole
separate version, and to do all sorts of other things that help the Thrift
community.  That's expensive, and it seems to be getting us exactly nowhere.

Regards,
Terry

[1] http://twistedmatrix.com/trac/
[2] https://launchpad.net/txamqp
[3] http://www.amqp.org/

Reply via email to