Farewell to PrettyTablePublished: January 15, 2016
Tags: software prettytable
Almost seven years ago (as hard as that is for me to believe!), I announced the release of PrettyTable, a Python library I wrote almost on a whim to make it easy to produce nice looking ASCII tables of the kind I first saw in the command line shell for PostgreSQL. It was much better received than I had ever anticipated; people blogged about it, it spawned a mailing list, it was packaged for Debian and other people wrote things which depended on it. It remains to this day the most successful piece of software I've ever written.
At first I was, of course, elated at this turn out, and worked diligently to add features people wanted and fix bugs. But, truth be told, it got old, and it got boring. It's not a terribly exciting concept to begin with, and it didn't take long before 90% of the work became related to fiddly details surrounding obscure edge cases. For the past several years, I've been a pretty awful maintainer of PrettyTable. I did occasionally make changes in the trunk branch of the svn repository when people poked me, but I never actually made a new release for PyPi or anything like that, so most users have never seen these bug fixes or new features.
I read The Cathedral and the Bazaar, on physical paper, something like thirteen years ago. I don't think I've reread it since, but nevertheless, ESR's "lesson 9" has always remained clear in my mind: "when you lose interest in a program, your last duty to it is to hand it off to a competent successor". I tried to do this with PrettyTable, although not terribly hard, and I always felt bad about letting it stay in the state it did for as long as it had.
Recently, one of those people who wrote something which depends upon PrettyTable got in touch with me. Or rather, Flavio Peroco got in touch with me as a representative of the OpenStack project, which is what an actual successful free software project looks like. It has its own conference! It also uses PrettyTable. With the official PrettyTable repository now frozen thanks to the inevitable death of Google Code, there was some concern about the ability for OpenStack to get needed changes pushed upstream in the future. It turns out that OpenStack has previously adopted other projects that it relies upon, and there was interest in doing this for PrettyTable. After a brief exchange of emails, I was quickly convinced that PrettyTable had an infinitely brighter future under the OpenStack umbrella than I was ever likely to provide it myself, so a handover is now in progress. Once PrettyTable has an official new homepage, I will update this post to link to it.
Even though it didn't really work out in the end, I don't regret the time I spent on PrettyTable. Over the years, on the order of ten people sent me emails for no other reason than to say that they had enjoyed using PrettyTable and to thank me for writing it. One person even sent me a US$5 PayPal donation! Every one of those emails made my day. And I've learned an important, if retrospectively obvious, lesson: it's important that your projects really do scratch your own itches, and it's best if that itch is a strong one. I've actually made very little use PrettyTable myself, which probably went a long way toward me being able to develop the indifference that I ended up showing the project.