Google Summer Of Code 2024 In Stratosphere. Blog for the first month of Sekhar Kumar Dash

Introduction

My name is Sekhar Kumar Dash. I am currently pursuing a B.Tech in Computer Science Engineering. In my free time, I contribute to open-source projects.

This blog covers my ongoing GSoC 2024 project with the Stratosphere Laboratory. It provides information about the current progress of my work, as well as my experiences and lessons learned along the way.

Project State

Currently, Slips codebase lacks comprehensive unit testing coverage for all critical components, and the existing unit tests do not provide adequate coverage. The primary objective of my GSoC participation is to augment unit test coverage for essential files, aiming to achieve a coverage range of 90% to 95%. Subsequently, these unit tests will be seamlessly integrated into the existing GitHub continuous integration and continuous deployment (CI/CD) pipeline.

As the first month of Google Summer of Code (GSOC) concludes today, here's a summary of my progress so far:

My Progress

Testing is done for about 16% slips module, 33 additional files remain to be completed.

My Experience

I am currently behind schedule. My biggest mistake so far has been underestimating the time required to write tests for a file. From my experience, even a single function can take up to an hour to test properly.

My first three to four Pull Requests (PRs) took longer to be merged due to missing test cases, poor formatting, and pre-commit failures. 

These issues were addressed after a one-on-one meeting with Alyagomma, one of my assigned mentors for Google Summer of Code (GSoC). 

Alya emphasized the importance of properly formatted code and taking notes for tasks to be done. 

This was crucial because I had been relying solely on my memory for every task, which cost me a lot of time. After this meeting, 

things have significantly improved; about four PRs have been merged with only minor issues, which were fixed today.

Tips I learned along the way

  1. Always ensure all your tools, like IDEs, are working properly in the community bonding period itself

  2. If there's a pre-commit file, make sure it's functioning correctly (i.e., preventing commits if the code is not formatted).

  3. Always ensure your code complies with PEP-8 standards.

  4. Check if all cases for the code are tested (if you're writing unit tests).

  5. Don't underestimate the time required to complete any task, especially unit testing.

  6. Rather than wasting time on errors you're stuck with, ask your mentor for help; this will save you a lot of time.

  7. Arrange tasks according to priority (this was my mentor's initial advice, which I followed belatedly).

  8. Last but not least, take notes; don't rely solely on your memory.

Relevant links: