Fixing Launchpad Bugs

20 May 2011 - ubuntu launchpad

At UDS, I met the Launchpad folks, who encouraged contributions to Launchpad itself in a couple of sessions. I’ve tried twice before and always get stuck with the getting a virtual machine set up stage. This time, I decided that I’m going to skip that step and go ahead and install it on my lucid laptop. As soon as I got back, I looked at getting the launchpad source code. rocketfuel-setup is a 400-line shell script that does the heavy lifting of the installation for the user. After having written such a script at work, I have huge respect for the author of this script :)

After installing, I looked around for a simple bug to fix and picked [bug1][bug 645825]. The bug appeared easy enough to fix and I had a fix ready in a few minutes. I proposed a merge and was told that it needs work. It needs test cases! Another day I spend with poolie, jml, and gmband a few hours of learning to write test cases for Launchpad. Gmb and I used etherpad to collaboratively write the test and I’ll be honest, that was great fun and very productive. Multiple tries and we finally got it right and he landed it in ec2 for the entire set of tests to run. The tests failed.

I quickly popped by #launchpad-dev and wgrant and mwhudson helped me fix and wgrant landed it into ec2 for me. It passed and I did a qa on! I’ll be honest that it was an extremely proud moment. This kind of made me want to fix another bug and I found bug 203478. This was something that did irk me before UDS. This time, [deryck][deryck] helped me with writing the test cases correctly first, watching it fail, fixing the bug, and then watch the test succeed. Did something hugely silly this time. I was running the test in a new branch and writing code in the devel branch, which would lead to test not being found, fix not being effective and a bunch of problems. Lesson learned is to use only my branch never the devel branch.

Overall, I liked fixing LP bugs though I’ve been told that its a brave move. The Launchpad developers have been extremely friendly and welcoming for new community developers. I think I’ll take more time to figure out the more complex bugs, but its fun helping fix the ones I can.

Edit: I missed mentioning - Launchpad can’t take a patch until you’ve signed the contributor agreement.