Contributing To Open Source (Part I)

  So this is my first blog post then… here goes nothing

Prologue

I was motivated to write this blog post as firstly, I wanted to chronicle my journeys into a website which I could refer to every now and then and reminisce what I have done and achieved and (more importantly) secondly, to fulfill a Google Code-In 2016 task about fixing an issue on the Open Event Web App repository for FOSSASIA and writing a detailed blog on how you tackled and approached the issue and fixed it. I decided to name it Contributing To Open Source (Part I) as I intend to complete more tasks in Google Code In 2016 which may involve writing blogs to spread the word on open source software.

Finding The Issue

Upon chancing upon a task on the Google Code In website about solving an issue on the Open Event Web App repository, I decided to claim it and try to find an issue which I had the ability to solve, given my the skills in HTML, CSS as well as the Git workflow. After reading the README of the Open Event Web App repository, I understood that the repository contained an application for launching event webpages based on a JSON file which underlined the requirements and specifications of the event. However, before launching this event webpage, one must also launch another webpage through services which provided servers, such as Heroku, DigitalOcean or Amazon Web Services (AWS), or locally using the command line prompt and NodeJS.

open-event-webapp-repository

Figure 1-The FOSSASIA Open Event Web App Github repository

After reading the introduction, I decided to install the Web App Generator on my local machine in order to test of the capabilities of the website and understand the features the Web App offered as well as the mechanisms behind the app. Installing the Web App Generator on a local machine would also save me the hassle of configuring settings on the server-side.  I decided to follow the instructions stated in docs/INSTALLATION_LOCAL.md and punched in the command ‘npm install’ in the command prompt.

error-thrown-by-npm-install

Figure 2-Error thrown by running command ‘npm install’ on the command prompt.

The command prompt threw back a long list of errors soon after I typed that command in. Scanning the error reports, I quickly surmised that the error was due to a package called node-gyp. Upon searching the error code on Google, I found out that this problem has existed and been known to developers for quite some time. Basically, unlike other operating systems such as Mac OS or Linux, Windows Operating System did not come bundled with a C++ compiler. However, NodeJS requires a C++ compiler in order to work. As a result, Windows users have to download software which contain a C++ compiler, such as Visual Studio 2010/2015 in order to fix this error and continue to develop NodeJS projects. I checked the documentation, however this error was not stated. As the saying goes, ‘Opportunity never knocks twice’; I jumped on the chance to solve this issue.

Approaching The Issue

Although I found out an issue that I could potentially work on and contribute to, I had no idea on where and how to start resolving it. Reading the description of the Open Event Web App repository led me to the official Gitter channel of the repository. I decided to post a message on the chat so that I could confirm with the developers that the error that I faced was not a one-off incident.

gitter-channel-repository

Figure 3-Official Gitter.im channel for disucussion of issues on the open-event-webapp repository

The developers at the Gitter channel were very helpful and supportive; they encouraged me to submit the error that I faced as an issue and implement the changes that I had suggested to the documentation to resolve potential problems faced by Windows OS users who wish to install the Open Event Web App on their local machines in a fork of the repository.

gci-issue-for-error

Figure 4-I raised an issue on the Open Event Web App repository about installing the Webapp Generator on local machines in Windows OS

After I submitted the error as an issue with screenshots of the command prompt and its respective error outputs to validate and verify the problems I had faced, I decided to add an advisory note to the bottom of the document for installing Open Event Web App on their local machine. The note targeted Windows OS users and briefly described the problem as well as solutions these users could undertake in order to solve it and run the Web App program properly. I submitted this as a pull request and soon the developers of the repository merged the changes I had made to the ‘development’ branch of the repository,thereby fixing the issue and allowing me to complete my Google Code In task.

gci-pull-request-solving-error

Figure 5-My suggested changes to the documentation of the repository to reflect the installation of the Open Event Web App on local machines was accepted by developers with my pull request being merged

Links

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s