It was a great and exciting feeling to start this journey! And here I am, at the end of it, graduated from the LFX Mentorship program, writing this blog. It was wonderful, everything that I expected it to be, and even more so in the 3 months! I am writing this blog about my experience in this mentorship
LFX Mentorship? What’s that?
As the Linux Foundation calls it,
“The Linux Foundation Mentorship Program is designed to help developers — many of whom are first-time open source contributors — with necessary skills and resources to learn, experiment, and contribute effectively to open source communities. By participating in a mentorship program, mentees have the opportunity to learn from experienced open source contributors as a segue to get internship and job opportunities upon graduation.”
Note: You can apply for a maximum of 3 organizations at a time.
Please have a look at the Mentorship guide to learn how to participate in LFX Mentorship programs: lfx.linuxfoundation.org/mentorship/guide
My acceptance into the program
I drafted a detailed 10+ page proposal explaining the approach, and timeline, and answered some common questions like why I wanted to work on the project and my past experiences with similar projects.
I submitted 1 such proposal during the LFX Fall 2023 cohort, under the Jaeger organization.
Fortunately, I got accepted into the program.
About Jaeger – Distributed Tracing Platform
Jaeger is an open-source distributed tracing tool that was originally built by Uber. It’s used to monitor and troubleshoot applications based on microservices architecture.
Let’s discuss the project!
The official LFX project link goes below:
Also, you can check out the issue in the project repository.
After going through both of the above links, you might get an idea of what I have worked on! If not, then let me explain you in brief.
The project was about upgrading the Jaeger-UI’s React codebase to the latest version, i.e., React v18. This includes all of the dependencies like redux, ant-design, query-parser, etc.
The major component of the project was to fix the errors that were raised due to changes in APIs of major packages like react-redux, ant-design library, etc.
The codebase of the Jaeger-UI was written about 6-7 years back when there was nothing like React Hooks and functional components. With the React v16 release, things changed a lot and introduced a whole lot of breaking changes.
In my LFX term, I was able to upgrade 95% of those dependencies, with 10000+- code modifications. There are still some packages left, like react-router-dom, and enzyme.
Scope for future
The Jaeger-UI codebase is written in class-based components which is no longer used by popular React packages. The migration of the Jaeger-UI codebase to functional components may help improve the project’s maintainability.
Also, the test suite of the Jaeger-UI is dependent on the enzyme which is no longer supported in the React v18. Migrating all such tests to React Testing Library is a possible solution.
I will continue to volunteer on this.
And that’s a wrap, what an amazing journey it has been, thank you so much for continuing to read this long on my journey as an LFX mentee for CNCF: Jaeger.
I would like to express my gratitude to my mentor Yuri Shkuro for being such amazing support throughout the project.
Heartfelt thanks to the whole Jaeger Maintainers Team, LFX, and CNCF community as well without whom neither this project nor this program could have been possible.
If you have any feedback or questions, feel free to reach out to me on LinkedIn and I will be glad to talk and help 🙂