Documenting GSoC '23 : Preface

Acceptance and Community Bonding

Documenting GSoC '23 : Preface

I have been meaning to start blogging and documenting my tech journey for a long time now. Unfortunately, I always found an excuse to delay it. Often it came in the form of 'not a good draft'. GSoC is finally giving me a reason I cannot escape to start blogging and I am extremely grateful for it. Here's the start of my journey!

The feeling of being accepted into GSoC

Starting to contribute to open-source

Before I share how it felt for me to be accepted, I would like to talk about how I started contributing to open-source.

It was at the end of my sophomore year that I realized that I had spent a lot of time figuring out what I wanted to learn. Jumping between things without actually doing one thing. It was a scary feeling to think that I had no employable skills post two years of my college. I had to get started somewhere and I had to get started fast.

I picked up an iOS development course and got started. This time, my single objective was to not be swayed by other fascinating technologies until I had the foundations of iOS down and could be tangible and products that can be shipped. The initial projects that were built by following along the course exploited a single concept that they wished to teach at a time. I wanted to get hands-on with production-grade software as soon as possible. I had a couple of minor contributions in the form of bug fixes earlier. I knew open-source was a great path to take as I had engaged with a different community earlier and had a wonderful experience.

I don't know what is it about iOS applications, but I found it very difficult to find an open-source iOS project. I used the Good First Issues website to filter down to find issues that were Swift based. That's where I found Scribe-iOS. It was one of the only well-documented repositories in the filtered list. I forked and cloned the repo, went through the codebase as much as I could and tried to find an issue I could solve. I proceeded to comment on the issue that I would like to help. My current mentor Andrew, who is the project owner of Scribe, was the best guide I could ask for! On my first couple of issues, he pointed out where the changes could be made but also left it for me to figure out the rest. The welcoming atmosphere was really what kept me going. I started to see the community aspect that is discussed about open-source as I met new people and felt a similar warm atmosphere. It was different and inspiring!

Applying to GSoC '23

Andrew and I participated in Wikimania, a hackathon hosted by Wikimedia. During the concluding slides, I saw the mention of GSoC. I decided to take a leap of faith and ask Andrew if Scribe could participate in GSoC as well. Of course, nothing was guaranteed and I had to show proof of work, but I couldn't be more happy about having a chance.

The application was near and the competition was tough. Working on the proposal took several iterations. I uploaded the proposal a few days before the deadline keeping a small margin for correction if required. This was followed by contributing to issues during the application period as well.

I was amidst my final exam when the announcement of the selected candidates went through. That day I stayed up pretty late as I hadn't studied during the evening because of my excitement!

The Community Bonding Period

Welcome Talk and the Contributor Summit

The Welcome talk was conducted by the GSoC coordinators Stephanie Taylor & Perry Burnham. It included welcoming and congratulating the contributors as well as discussing a few statistics related to GSoC applicants. Thank you very much for the warm welcoming note, Stephanie :)

This was followed by a live Q&A. This was especially important as people from different regions had varying doubts related to setting up their payment-accepting account on Payoneer. The questions were varied as different regions had a few specific processes. The Q&A also discussed how to be a better contributor briefly -- the key is communication.

I was traveling during the day of the Contributor Summit. Due to bad reception, I was only able to watch the first few talks of the live stream, unfortunately. During the talks I was able to watch, various aspects of being a contributor were discussed and shared their experience with open-source. This included communication, asking good questions, trying to figure out a problem before asking for help and being realistic about the work you have done and expectations. The limited talks I was able to attend were extremely helpful and I can only wonder about the value I lost out on by missing the rest of the event.

This process is very intimidating to newcomers, who might be concerned about having their words immortalized on the Internet, and worse, saying something wrong or embarrassing. The only way to get over this fear is to practice and participate publicly.

This is a quote from the GSoC guide on open-source culture for new contributors. I found it very helpful.

I was also added to the Wikimedia Zulip chat as well as the mailing list for GSoC and Outreachy contributors. The org admins are extremely helpful! Learning about the work they have done for the community is also inspiring. I was going through the projects of the other interns and it is amazing what everybody is working on! I am looking forward to collaborating with them a lot over this summer and beyond.

Setting Up

Some of the stuff that I had to get set up before the coding period:

  • Set up the Payoneer account to avoid hassle later. This ended up being pretty straightforward for me. I did not encounter any problems throughout the process.

  • Forking the Scribe-Data repo. In my many contributions to Scribe, I have not contributed any code to the data. My task for GSoC changes that and thus I need to get a stronger grasp on that codebase.

  • Bringing my local Scribe-iOS repo up to date. During a small absence in between my exams, the application has seen several changes. So pulling them from upstream is one of the tasks in my setting up list.

Meeting up with the mentors

I have had two meetings with the Scribe team hitherto. The first meeting was my first time meeting Will, who is a big contributor to Scribe-Data. It was extremely exciting meeting him! There is so much for me to learn from Andrew and Will and I am very excited for the summer ahead.

During our meeting, we caught up and tried to lay down a basic workflow for the duration of the contribution period. Major points of the workflow:

  • Documenting changes related to a particular issue under its designated issue created on GitHub (A separate team is maintained for GSoC on the Scribe project board for easy filtering).

  • Weekly meetings on Tuesdays to discuss updates and plan the forthcoming weeks.

  • The basic idea of which issues need to be further broken down into smaller sub-tasks.

  • Maintaining weekly meeting documentation.

  • Discussing priority of issues to put in place a rough order for in which to tackle them.

  • Discussing other aspects of Scribe happening outside GSoC that may be blocked or on hold due to tasks assigned to me.

We also discussed me reviewing other pull requests made to Scribe as well as setting up a framework for writing tests. This should help me gain a stronger understanding of how software engineering works at the production level. I have been going through a few articles and documentation and should be set up soon.

I also have to catch up with some UIKit as I have been using the SwiftUI framework for the past couple of months as my primary framework. Revising how to storyboard, using the delegate pattern and looking at creating multi-page applications using UIKit should wash off the rust that has built up.

Plans for the coming week

  • I need to test the current workflow that has been laid out. If it needs tweaking, the starting weeks should be a good point to make changes. I will be in correspondence with my mentor on this one.

  • Next is to hit the ground running by tackling a couple of Priority 1 issues along with some Priority 2 or 3s.

  • I also need to dive deeper into the codebase of Scribe-Data although I do have an understanding of how it works. This should be in preparation for the issues related to adding the English and Norwegian language keyboards.

Thank you so much for tagging along my journey! Sharing my socials below for anyone interested :)

Twitter | LinkedIn

Until the next one...