So that’s the news: msn-pecan 0.1.0 is released! And I’m glad.
To directly quote from Felipec’s post in his blog:
After a bit more than two years of development we are proud to announce the first stable release of msn-pecan. The project started as a “fork” of libpurple’s msn protocol (read below why it’s not really a fork), but it has grown and soon will become a standalone library with support for Telepathy too.
Even though I have only 3 of the 1009 patches and although I don’t understand any of the code itself, I gotta admit I really feel like I’m part of the project.
7 years ago I started a project to write a text mode, ncurses-based MSN client for Linux. The project is still registered on Sourceforge as msnclient. It was my first attempt at writing free software. However, the challenge was too much for me and the project quickly died. I never got further than logging in and sending a single-worded message to another contact.
I eventually started to learn how to use Pidgin and got my self good hardware and my need of a personalized MSN client was no more. I still think, however, that msnclient is a good concept to try to bring to life. Maybe some day it will be an interface based on the msn-pecan functions.
That said, in mid 2009, when I started learning Git, felipec provided me a branch from his repository to test the direct connection feature (better known as «fast file transfers» or «p2p file transfers»). It didn’t work that time.
6 months went by and lot of commits over his master branch were too. 0.1.0-rc1 came out and directconn was still not working but the dc-test branch was relly old now. I had learned enough about Git and I though that I was better enough to try fixing the DC code. However I really knew nothing about the MSN functionality and I really didn’t understand the code. Well, at least I knew what the first step was: I had to rebase it anyway. So I tried to bring that old branch to the new code base so it could be (at least) useful to the developers. So war was lost for me, but perhaps felipec would get encouraged enough to restart working over this part of msn-pecan (but you’re not supposed to say that, right?). That’s how I saw it and how I got my motivation to do it; also, I would be my first actual real-world git rebase.
The main problem was that felipec had done a lot of relevant code reorganization, renaming and splitting in July (some done good, some done badly). Using some C experience I managed to rebase it and sent it in as a couple of patches.
Suddenly, felipec continued work on directconn. I don’t know if it was because of the patches or not; that doesn’t matter. The important thing is that in msn-pecan 0.1.0, direct connections now work and are stable. Even if not in all cases, it is a great step.
Now I think it went beyond learning how to rebase: I actually learned how to contribute using Git, just like the big boys do in the Linux Kernel project. I still don’t understand the code and the inner workings of the project but those two patches allowed me to learn a lot about software collaboration and review. This was particularly helpful for Superkb which is also written in C and its source code managed in Git.
So, thanks again felipec, congratulations and we all should have a drink for the project, even if on different parts of the world! Let’s party and spread the word.