Ian Bicking in Python’s Makefile:

An example of this is buildutils. This package is, sadly, unmaintained; in part I'm writing this blog post to encourage people to steal/remake/repair the kind of functionality buildutils provides, and provide entirely new functionality.

Buildutils is one of two Python projects I really screwed up on in my maintainership duties. The other is a documentation utility called Pudge. On both, I failed to heed the wisdom of Lesson #5:

  1. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

I never lost interest in either of these but had to stop working on them due to other commitments. Both are conceptually solid and somewhere near 50% through their implementation cycle. Each would fill a big hole in today’s Python toolkit (IMO). Neither are being maintained. No mailing lists, no new releases, nothing.

Projects die all the time due to lack of interest and value. That’s normal and healthy and a big part of the F/OSS ecosystem working its magic. What’s not normal and healthy is when projects that people are interested in die. That’s bad maintainership.

I'm sorry.

One thing about Lesson #5 that isn’t immediately obvious is that it’s not okay to just leave a dead project out there. You must find a maintainer or you must die all the way. At the very least, you have to state clearly that the project is no longer being maintained and that people are encouraged to start new projects that duplicate the dead project’s functionality.

The first issue here is that people will find your project and believe that someone is already working on the problem and so will not want to duplicate the effort. The second issue is that leaving dead bodies on the field decreases morale. Who wants to start up another documentation project when there’s five half attempts already out there? If the previous projects couldn’t get it done, there must be something troubling (like dragons) about the problem itself. Nope, the maintainers probably just got tied up on something else.

All that being said, I'd like to humbly request that anyone who has any interest at all in these projects and would be interested in taking over maintainer duties, please leave a comment or contact me via email.

If the projects are resurrected, I'd prefer that the subversion repositories and project sites be moved to a new home but I can host this stuff for as long as needed. I've had multiple requests (the frequency of which seems to be increasing) for the mailing lists to come back but I can’t host those anymore so finding a new discussion area would be the first order of business.

In the meantime, I'm going to add text to the project sites noting their status (as being dead) with a link to this article and an invitation for gratuitous code theft.

One last thing… If you've never maintained a F/OSS project before but are interested, either of these projects would be a great place to start. They're both fun if you're into tooling, neither would require a whole lot of time, and there’s already small communities of really smart folks who use the projects and would contribute.

This entry has been tagged python, coding, pudge, buildutils — follow a tag for related essays, articles, and bookmarks.

Discuss

  1. Documentation generators in python are hard. It’s sort of ironic to believe that but there is so much to support in all the many ways python can be written. When I started having troubles with pudge I went back to plain old pydoc (which doesn’t work 100% and when it does is very minimal, but usable).

    However, I think rather than reviving pudge I'd suggest following the efforts of pydoctor. I really think it hits the nail on the head. It uses python syntax trees instead of import which makes it very fast, armored like a tank, and equipped with an informative error reporter (you get a nice snapshot of line-numbered code). It’s lightning speed at restructured text compared to docutils. Follow it. Report bugs. Submit patches. It’s still a little hard to install, which will hopefully change when a more final release of nevow is available but I have a lot of code whose docs are (IMHO) very nice to browse, all thanks to pydoctor.

    Kumar McMillan on Monday, April 16, 2007 at 02:11 PM #

  2. It’s sad to hear that buildutils is dead – as you say it’s filling a niche. Better properly dead than lurching around pretending to be alive, though.

    I don’t have the time or knowledge to take over maintenance myself, but I'd love to see somebody else do so;) If anybody does get something off the ground, please drop me an email (daniel at ohuiginn dot net) and I'll try to chip in what I can.

    Dan on Monday, April 16, 2007 at 06:39 PM #

  3. The buildutils seems to be just the project I wanted when I asked for “Capistrano for Python”, http://maxischenko.in.ua/blog/entries/118/capistrano-for-python/.

    Max on Tuesday, April 17, 2007 at 05:05 AM #

  4. This post was just what I needed… it convinced me to hand off a project of my own before it was completely dead: http://blog.talbott.ws/articles/2007/6/20/test-unit-a-time-to-maintain-and-time-to-hand-off.

    Thanks for sharing!

    Nathaniel Talbott on Thursday, June 21, 2007 at 09:10 AM #

Leave a comment





(syntax: markdown)