Final Blog Post for DPS911 Course in Seneca College

For these three and a half months I have come a long way in working on the WebKit open source project. From the very beginning, I really wanted to immerse myself into a very important and popular open source project, so I started looking for projects of large companies. As a result, I chose the Apple WebKit project.

Well, at the very beginning I did not know what was waiting for me ahead. I thought that this is a regular project such as any other on the GitHub and I will be able to study the codebase quickly and submit pull requests to easily get six releases.

But, things didn’t go so smooth. The fact is that a WebKit project is a very large project that has a huge codebase, different logics, and different programming principles. Moreover, I did not use any of the technologies which I knew before that WebKit uses. This includes understanding special scripts to build, run and test a patch, searching and filing bugs on Bugzilla and even chatting with IRC client. I have never seen or worked with something like this before.

So I chose a “cat in a bag”. I thought it would be easy for me but everything was becoming more and more complicated every week. At the very beginning I began to experience big problems with running scripts, they gave me a lot of errors that I needed to fix. And my biggest mistake was that I put it off and I thought that everything will go well, but at the end of a day nothing became fixed automatically.

Here, my course professor really helped me. David finally convinced me that the WebKit community on the WebKit IRC channel can solve all of my problems and answer all of my questions. I could not believe it, because I was sure that Apple employees will never help a single college student, they have more important tasks to do. But, I wrote to the WebKit IRC channel and asked for help.

I was shocked. After a few weeks of work and communicating with Apple employees, they really helped me and solved most of my problems with my Mac and local WebKit build and I was able to run all of the scripts, after which I was able to finally edit, build, run and test my code and more important — send patches to Bugzilla!

It may seem to many people that it was a negative experience and I had to switch to the other project after I started to experience first big issues with WebKit. I disagree. I am happy that I chose WebKit and did not give up and did not switch to any other project during the whole DPS911 course in Seneca College, because this experience helped me to understand one very important thing, that I want to share with future open source contributors.

Do not afraid of talking to the community, they really want to help you, that is what open source means — helping each other, not only contributing code. If I could believe it at the very beginning my progress would look much different.

Moreover, thanks to this hard experience and errors with scripts running, during release 0.4 I found a bug in WebKit style checker, and was able to create a better exception message and even submitted a patch for it! For releases 0.5 and 0.6 I am developing (patch submitted but work is still in progress) a new feature to the WebCore module — Localized.stringsdict!

That was my journey in the open source and DPS911 course at Seneca College, hope my experience will motivate future open source contributors to do big things!

P.S. I am very thankful to my professor David Humphrey, WebKit community and DPS911 fellow students for their help and advices during my tough journey! Thank You!