OpenSource Internship at Git: Getting Started and Overview of my Project

OpenSource Internship at Git: Getting Started and Overview of my Project

I have been working on different OpenSource projects since couples of months now. I have made contributions to critical Open Source projects like Linux systemd, CPython documentation, the Canonical website, pep8speaks, and the Open Science Initiative for Perfusion Imaging (OSIPI). During these contributions, I have used couples of languages, tools and frameworks like Python, C, C++, HTML, CSS, JAVASCRIPT, Bash-scripting, Git, Github, Docker, Linux etc.

OpenSource makes it possible for anyone to work on very important software projects used in the world and also get mentored by the most brilliant software engineers in the world.

Outreachy is one of the organization that make it possible for beginners to make contributions to OpenSource projects. They connect interested people to OpenSource projects maintainer so that they can be mentored by them. They offer these in form of internships and also pay their intern.

I was selected for the December 9 to March 7 2024 Internship round to work on Git project “Finish adding a 'os-version' capability to Git protocol v2“ with mentor Christian Couder a staff backend engineer at Gitlab.

My project will focused on finishing adding ‘os-version’ capability to Git protocol v2. This capability is designed to allow Git clients and servers to exchange information about the Operating System (OS) they are using, which can aid in diagnosing issues, security and collecting statistical data. A patch has already being submitted by my mentor Christian. Following the patch submission, discussions arose regarding the necessary improvements and issues, particularly with Windows compatibility. The objective of this internship is to address these outstanding issues, implement the required improvements, and ensure the successful integration of the 'os-version' capability into the Git protocol.

I met with my mentor Christian on Friday December 6 and we discuss the project and discussed my plan for the projects. We discussed about me sending an email to the patch discussion to ensure that everyone involved in the discussion are on the same page including the Git maintainer Junio Hamano.

I have done some couples of preparation before the internship started. They are :-

  1. Setup my blog page.

  2. Setup my own Git repository on Github.

  3. Get in contact with my mentor and he also sent me some code snippet.

  4. Went through the Discussion about my project on the Git Public listing.

  5. Drafted the email I will be sending to the Patch discussion and sent to my mentor for review.

Since my internship started today on Dec 9, 2024. I have some couples of aim to achieve this week.

  1. Send the email which I already crafted to the public Listing and finalise the implementation details.

  2. Retrieve the patches sent by mentor to public listing and create a dedicated branch for it on my Git fork.

  3. Go through the patches in details and understand the code implementation around Git v2 protocol.

  4. Build Git from the new branch and run the test in details to see what is wrong about the patches submitted by my mentor especially why it was not running on Windows OS.

  5. Start Coding and looking into submitting my first Patch.

  6. Of course meet with my mentor on next Friday to discuss my progress and next line of actions.

This is the link to the Git Public listing discussion about my project :- https://lore.kernel.org/git/20240619125708.3719150-1-christian.couder@gmail.com/

Thank you for reading to this point. See you next week !!!