Fixing a FOSS bug

One of the chief benefits of FOSS is that developing an application or system is a collaborative process. As part of learning the ways of the FOSS world for our HFOSS course, we were assigned the task of finding and fixing a bug in a FOSS project.

The definition of bug was fairly loose. It could be a typo in a wiki, a small one line code fix or it it could be adding a substantial feature to the software of project you contributed to. I honestly wasn’t sure where to begin looking for a bug to fix. Most of the bugs that I found seemed to required coding knowledge that was above my level. As another part of HFOSS, I attended WiCHacks(you can read more about my experience here).

After seeing the awesome projects at WiCHacks, I was inspired to explore other projects that were created by the hackers I met there. While searching, I came upon https://github.com/SkylerJaneClark/primaryOwenTracker. At the time there was one open issue in the respository. It was Add submitter to the Submitted Owens and I decided I wanted to solve it.

I began by cloning the repo and setting up a development environment in a python virtual environment. I then installed the dependencies for the project in the virtual environment and began attempting to understand the project structure. After a couple of hours, I had sorted out the way that the Python code interacted with the HTML to build and serve a website. I then fought with the templating and database access for another couple hours until I had a working site with the new feature added. The most complex part was determining the naming convention for entries in the database and how the templating fit into that and the static HTML. Once I had the working site, I contacted the project author via Slack to notify them that I had fixed the issue and was going to submit a PR. They replied that while this was not documented, they had planned to integrated the recording of the submitter name for an Owen with the RIT Computer Science House account system. I asked if my fix was still needed and they graciously accepted it as the fix until such time as they implement the LDAP linked name recording.

This experience taught me that it is occassionally difficult to know what to expect from and upstream and that contributing may require learning new skills but if it is a good and welcoming project the work is worth it.

Below are links to the artifacts I submitted and interacted with in this activity.

Written on February 17, 2018