Git Internship Week 9: Outreachy Internship Progress and Updates
Yeah, it is already the end of the 9th week of my Outreachy internship at Git. It has really been nice, and I have learned a lot by contributing to Git and interacting with other contributors.
After many patches (code) submissions and multiple iterations, my internship project has undergone a lot of refinement from the initial plan. The initial plan was to add a new capability (‘os-version’) 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, improving security, and collecting statistical data. The OS information includes the kernel name, version, release, and machine—basically, the output of the uname -srvm
command.
After many iterations and discussions in the mailing list, I will not be adding a new capability to Git protocol v2. Instead, I will be adding just the OS name (e.g., Linux) to an existing agent capability in Git protocol v2.
The existing agent capability is in the form of "package/version"
(e.g., "git/1.8.3.1"
). I will be extending it to include the OS name in the form "package/version-os"
(e.g., "git/1.8.3.1-Linux"
).
Including OS details in the agent capability simplifies implementation, maintains backward compatibility, avoids introducing a new capability, encourages adoption across Git-compatible software, and enhances debugging by providing complete environment information without affecting functionality.
Also, I will not be adding any configuration options. Anyone who wishes to opt out can use the existing GIT_USER_AGENT
environmental variable to specify what they want to send in the capability. This takes higher priority.
I have sent the patch that implements all these changes to the Git mailing list, and I hope it gets accepted soon.
I have also been working on another task, which I mentioned last week: removing the the_repository
global variable in favor of the local repo
variable passed into different functions. I have sent the first patch, which has been accepted. Later, I sent another series of patches to the mailing list to remove the the_repository
variable, and I received some reviews on it. I will be sending another iteration to the mailing list soon. I will discuss this more next week as well.
My next task will mostly involve sending the new patch to the mailing list for both my project and the removal of the_repository
.
As part of my Outreachy internship and to learn from the experiences of other Git community members, I met some amazing contributors from the Git community. I met Taylor Blau from GitHub, Kaartic Sivaraam Sankaranarayan from Zoho, and Jialuo She from Nvidia. I really learned a lot from all of them, and I am really glad to have had the opportunity to meet and learn from them. One highlight from all of them is how much they love open source and how meaningful it is to them. I plan to meet with some other contributors this week as well to learn from their experiences.
You can check here for any of my patches in the Git mailing list:
https://public-inbox.org/git/?q=Usman+Akinyemi
Thank you, and see you next week.