elb's Blog

Going public with Pidgin

As anyone who is likely to read this page now knows, Pidgin went public on April 6, 2007. Due to legal pressures (which I will not repeat here, I'm sure that will be covered in plenty of places), the Gaim project changed its name to Pidgin, and libgaim became libpurple.

In spite of the circumstances surrounding this change, I am pleased with the result, as are the other Gaim developers. It looks like most users are, too, judging by the feedback we're hearing. There is certainly a vocal faction which hates the new name, and is loudly proclaiming this to anyone who will listen, but it seems to be a small minority. I have to assume that they just don't get the joke.

There remains a lot of work to do before Pidgin is released, but I (we) have every hope that, now that the legal specter is at least under control, if not gone, said work can move quite rapidly. As can be seen from the web site at pidgin.im, as well as the bug tracker and development pages, a lot of branding is left to be handled -- the current web pages are basically just the old Gaim pages, for example.

You can find out about all of that anywhere, though; I'd like to take just a moment and plug our new revision control system, if I could. With the move to our own hosting at pidgin.im, we are no longer tied to SourceForge's Subversion. Being a large and active project, we have experienced a lot of pain due to the limitations of SVN, specifically, and the centralized version control system (VCS) model, generically. Due to this pain, when the opportunity presented itself, we jumped ship to a distributed VCS (DVCS). After some debate, we settled on monotone, which I have been using individually for various projects for some time, now. This should have a lot of benefits, going forward. For starters:

  • There is no longer any divide between "user" and "developer", as far as the VCS is concerned. This means that third-party developers, users, and patch writers can use all of the power of the revision control system that was previously available only to "official" developers. This is a huge step forward for the open source development model, and will hopefully help simplify the acceptance of patches and code contributions from external developers.

  • Branching and merging are reasonable things to do, for basically any reason. This should make parallel development of more complex features simpler. In the history of Gaim, there were several points where all development but a particular major core change ground to a screeching halt while that major change was shaken up, largely due to VCS limitations with first CVS, and then SVN. This sort of snafu should be minimized, with monotone.

  • Developer-to-developer interaction is much simpler. Eventually, hopefully patches can be largely superceded by monotone revision syncs. This facilitates better communication (commit logs with coherent commit messages are available, the history of design is visible, etc.) and more rapid back-and-forth refinement.

Monotone still has some distance to go before it's perfect, but it's getting closer all the time -- and it's certainly an improvement over the old way. I'm excited for Pidgin, with all of the new development and interaction opportunities it presents.