LFX Mentorship with CNCF Jaeger - First Month Progress Report for Charts Migration Project
It has been one month since I got accepted to contribute to CNCF's Jaeger's Chart Migration Project, it's time for a progress report
Introduction
What's LFX Mentorship?
LFX Mentorship is an open-source program designed to foster the growth of next-generation open-source developers. The program is run by the Linux Foundation, it pairs talented individuals with experienced mentors within various open-source projects like CNCF, Hyperledger, etc., enabling mentees to gain hands-on experience, contribute to impactful projects, and develop valuable skills
What's Jaeger?
Jaeger is an open-source distributed tracing application used to monitor and troubleshoot complex software based on microservices architecture.
Jaeger was originally developed at Uber but was later donated to the Cloud Native Computing Foundation (CNCF) for maintenance and further development.
Project Overview
The Jaeger project has a lot of different graphs and visualization views, over the time different libraries were added to support different graph views, which led to having multiple graphing libraries as project dependencies, which is undesirable as it makes things like maintenance, debugging, refactoring, etc very difficult.
The goal of this project is to replace all libraries with a single library that can support all existing views, this will lead to more uniform and consistent designs along with reduced bundle size, faster performance, fewer configurations, and easy to maintain codebase.
More details about this project can be viewed here.
Project Progress
Week 1
The first week of the mentorship was dedicated to community bonding and getting familiar with the codebase.
At the start of the week, I set up the entire project again to make sure I was not missing anything, got everything up and running and then set up the HotRod project to play around with things to understand how the Jaeger application works.
I also read some documentation related to tracing, OpenTelementry, etc. to better understand the project.
At the end of the week, I met my mentor Yash Sharma for the first time, he gave me an overview of the project to make sure we were on the same page and I was asked to solve some GitHub issues as a warm-up until we decide upon final deliverables.
Week 2
One of the main goals of this week was to research and come up with some possible graphing libraries that can be used to replace all existing graph views in the project.
I listed out some possibilities like D3.js, Sigma.js, Cryptospace, etc.
There was not much progress apart from this as most of my time was spent travelling from my home town to university.
Week 3
This week I again met my mentor, Yash, and we discussed a few more things, we polled for a common meeting between us two and Yuri Shukro (the maintainer of the Jaeger project) to clear our doubts.
In the meanwhile, as part of the warm-up tasks, I worked on migrating Moment.js
to Dayjs
for the Jaeger project, I was able to make a PR for the same.
Week 4
Me, Yash and Yuri met for the first time this week, Yuri cleared a lot of our doubts regarding the project and things got a lot clearer. Yuri asked us to prioritise the DAG view in the project and do some research on how it can be replaced with a suitable library which will most likely be Plexus.
Also, one of my previous PRs broke search functionality in many places, I worked on the issue and fixed the broken functionality through this PR.
In all my previous work experience, I had worked with Jest and React Testing Library, with Jeager it was my first time working with Enzyme, and this caused a delay since I had to learn the basics of it but eventually, I figured it out and the PR was merged.
Conclusion
The first month of this program mostly went into onboarding, getting familiar with the code and community, doing warm-up tasks and planning. It was the last week when things started getting serious and I hope we can start working on the actual coding part of things from next week.
See you in the next blog,
Prathamesh Mutkure ๐