So, in my last post, I wrote about trying to figure out the WebKit source. Now, unlike other open source projects that I played with or contributed to, WebKit isn’t exactly the most obvious one to hack on. The main things that make it difficult to grep and figure out was the the fact that there’s no obvious point of entry for new hackers.
Now, when it comes to other pieces of software with similar complexity, they approach this problem in numerous ways. For example, the Linux Kernel, (which I occasionally try to test and write modules for, none of which are any good to make it past my desktop) has a really good site called kernelnewbies.org, that I would recommend anyone who is new to Operating Systems read. It goes through how the Linux Kernel actually executes, the coding conventions, and how to code, test and patch a kernel. Sites like this are very important to overcome the whole “Einstein” complex that comes with Open Source software.
Now, with WebKit, there’s not as much for new developers to grab onto, so I went back to something that I was more familiar with, which was Mozilla. Now, I admit that in the past I’ve attended some MozCamps, and I’m friends with a few people there, but I’ve never touched the actual Firefox Source.
Admittedly, this was a VERY easy bug to fix, of minor importance, and it was flagged as “Good First Bug”. I was looking for something that I could write quickly while working on other projects during the day. I’ve never used Mercurial until I fixed this bug, and I’m nowhere near being a XUL ninja, but I managed to get a bug fixed, which is awesome.
I feel that these social hooks are what’s needed in making a successful open source project, and that the people who put the time into flagging the bugs as [good first bug] in Bugzilla, or maintain things like Kernel Newbies are awesome. I hope that more people make sites that give people who have a passing interest in Open Source development the ability to contribute back, and it’s something that we try to keep in mind here when we make our stuff. For example, If you think that there’s something in PhoneGap that needs to be clarified from a contributor standpoint, please let us know and we’ll try to figure out how we can make it easier, (within reason, we’re sticking with git, because git and hg are awesome).