In my last post, I talked about how an email on GNOME’s newcomers email list helped me to make up my mind for participating in GSoC 2018. In this blog post, I will talk about my journey of contributing to Pitivi so far. So, LETS GET STARTED…
When I first went to the IRC channel of Pitivi, my first message on the channel was “Hi, I would like to contribute to Pitivi and take up a project for GSoC 2018. I have good exposure to Python. I also have experience working with large code bases. How can I start contributing to Pitivi. Thanks!”. I didn’t get a reply at that moment but I received an email next day from Alexandru Băluț (one of the current maintainers of Pitivi and primarily known with his IRC nick “aleb”). He actually searched my profile on GitHub, took my email address from there, and sent me an email with all the relevant information and links. The effort aleb put in just to answer the question I asked on the IRC channel was IMPRESSIVE.
After setting up my dev environment, I dived a little bit into Pitivi’s code structure. After this, I went to Pitivi’s bug tracker. They already had some bugs (or issues) tagged for newcomers. After going through those issues, I assigned the issue #1861 to myself and started working on it. I closed this issue within 10 days (link to commit). After this I took the issue #1399. This issue was more of a feature request – the main idea was to implement shift click functionality in Pitivi to allow for selection of multiple clips in the project timeline. While working on this issue, I realized that there is a bug in Pitivi that needs to be fixed first before implementing this feature request. I reported the bug to aleb and he filed it in (#2155). In the meantime I worked on the issue #1951. This issue required diving into GES code and finding out why the logic of pasting clips was failing. GES is the back-end of Pitivi written in C programming language. After going through GES code, I figured out the issue with logic of pasting clips and mentioned it in the commit message (link to commit). While working on this issue aleb and thiblahute (Thibault Saunier – current maintainer of Pitivi and GES) realized that it would be good API-wise to implement a new API call for pasting clips onto the timeline. So I filed a bug #793820 in Bugzilla and closed it after implementing the new API call (link to commit). After this, I got back to issue #2155. While working on this issue, I realized that the bug was in GES and not in Pitivi. The bug was caused due to improper refcount handling in ges_layer_get_clips_in_interval(start, end) function in GES. I filed a bug #793874 in Bugzilla and closed it after resolving the bug (link to commit). This bug was blocking issue #1399 and once it got resolved, I went back to this issue. In the meantime, I worked on issues #2161 and #2171 and resolved them (link to commit closing issue #2161) (link to commit closing issue #2171). After working on the issue #1399 for about a month, I finally got the feature for selecting multiple clips in a project’s timeline using shift + click pushed into Pitivi’s master (link to commit).
My journey of contributing to Pitivi so far has been WONDERFUL. It has been an amazing learning experience for me so far. Contributing to such a large code base has also improved my software development skills – I would like to thank aleb specially for this because he keeps telling me how to improve my code through code reviews.
I hope that this journey continues in the time to come 🙂