Hi, This is my proposal for an internship position to participate in the Git project, "Convert Unit Tests To Use Clar Testing Framework" as listed in the Outreachy mentoring program. --- # Convert unit tests to use Clar testing framework ## Personal information Name: Chizoba James ODINAKA Email: chizobajames21@xxxxxxxxx Github: https://github.com/ZIHCO ## About Me I was a teacher, with an interest in the tech industry, this interest drove me to building a career in the tech space. I had enrolled in a tech school to get the needed training. And recently, I completed a software engineering course that required a 70 hours weekly input. Upon the course completion, I stumbled on the Outreachy program, and I am amazed by how they have been giving the under-represented the opportunity to make their first contribution in the tech space. Prior to my Outreachy application, I had made no contribution to any FOSS project, but I have used a ton of these softwares (Git was the version control I was taught software development with) and I love the spirit behind their development, "The open source spirit: To let a billion lemons go unsqueezed. To capture vanishingly less than you create. To marvel at a vast commons of software, offered with no strings attached, to any who might wish to build." I wish to contribute, and I hope the Git community gives me an opportunity to. ## Overview and background Referencing [1], there was a need to extend Git's home-grown unit testing framework to avoid code duplication. Clar was proposed as an alternative to enhancing Git owned test framework with macro, since it would be nicer to not bother with having to enhance and maintain the Git test framework. Clar is "easy to test and make clear the quality of your code". ### Potential goals - consolidate the homegrown unit test framework by migrating to clar framework - implement additional assert functions for Git-specific types - work with clar upstream to improve shortcomings discovered during the integration of Git with Clar ## MicroProject [2] t6050: avoid pipes with upstream Git commands Status: will merged into master Description: In pipes, the exit code of a chain of commands is determined by the final command. In order not to miss the exit code of a failed Git command, avoid pipes instead write output of Git commands into a file. For better debugging experience, instances of "grep" were changed to "test_grep". "test_grep" provides more context in case of a failed "grep". ## Learning the source code I will continue to study the source code especially as relates to the task at hand, referring to previous works done by the two GSoC interns, who have previous worked on this task. ## Timeline Phase 1 (December 9 - December 30) Community bonding. Talk with mentors. Read Documentation. Write backlog. Phase 2 (December 31 - January 27) Begin migrating unittests to use Clar framework. Send patches implementing the migration, get reviews, make changes based on mentors and community recommendations. Phase 3 (January 28 - February 25) Look at implement additional assert functions for Git-specific types Final phase (February 26 - March 7) Working with clar upstream to improve shortcomings discovered during the integration of Git with Clar. ## Availability I will be available to make a time commit of 30 hours weekly for the whole span of the internship, 13 weeks. ## Giving back to the community I already love it here, and I will always come back to make contribution here, and If given the opportunity, post-Outreachy I would stay back in the community helping in grooming the next set of interns in the same open spirit with which I have been groomed. ## Conclusion In conclusion. I want to say a big thank you to everyone that made a comment on my patch, your comment(s) had helped me to progress this far in this journey. Thank you. And to every member of Git community, thank you for sticking around and putting in the efforts, offering this great opportunity to any, with no strings attached, who might wish to build. Thank you. ## References [1] https://lore.kernel.org/git/cover.1722415748.git.ps@xxxxxx/ [2] https://lore.kernel.org/git/20241022012701.8959-1-chizobajames21@xxxxxxxxx/