Thursday, September 25, 2014

Bug Fix

Although I have had to fix numerous bugs in my own projects, this past week for the first time I got the "pleasure" of squashing a bug that was not of my own creation.  This experience had terrible moments, enjoyable moments, and moments of fear.  I say "fear" because I was afraid I would not be able to find a bug to squash in a week.  Despite the mixed feelings involved in this experience, it was nice to feel like I helped contribute to a project being developed by an active team of people.

I began my search for a bug to fix on the homepage of Github - https://github.com/ .  Unfortunately, I immediately did not have luck finding an easy bug to fix.  I thought it would be cool to look for 3d Modeling projects to work on, but quickly realized that most of projects involved 3d printing, which I did not really feel like diving into.  I thought maybe my luck would increase if I searched for projects in languages I had a lot of experience with, so I searched for projects in Java.  Unfortunately, I found that the bulk of these projects were in the field of Android development, which I really don't know much about.  I checked out this project here: https://github.com/CovertJaguar/Railcraft/issues because I thought it might be cool to work with a Minecraft mod, but I could not find a bug that I was confident that I could fix.

Finally, I consulted my good friend MrNex (blog here: http://nexleveldevelopment.wordpress.com/) who told me that he found a lot of issues in a project called SIPp on GitHub.  What was great about this project, was that the developers labeled which bug fixes were good for beginners.  SIPp is an open source project developed to help users test their SIPp systems.  Here's some specific information about the project if you're interested:
As you can see through the issue link, someone asked for help getting started on a bug fix and no one responded to them.  This implies that the contributors are not going to waste time helping someone with such a vague question, but luckily, the readily available information on the issue was more than enough for me to attempt to fix the bug.  In fact, I did not really need to contact the community until I sent the commit saying I tried to fix the bug. 

All in all, to fix this specific bug, I had to reference a commit that someone else had made to their local fork of the project, and implement it into the main original SIPp.  This really was not very difficult and required that I copy, paste, and adapt about 36 lines of code.  The fix was used to "Implement a better log when receiving an unexpected response but expecting a request."

Once I finally contacted my friend and found a suitable project to work on, this experience really became about 100 times easier.  The major difficulty was in initially finding a project to work on, and then finding a bug in that project to squash - but I guess that could just be because I am a picky programmer :P

No comments:

Post a Comment