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/
