Cross Posting

Context

I always wanted to contribute to an Open Source Project, but I could never find out a project where I could drop in and understand the issues posted. I did have a hard requirement for the project to be in Go, and then came along this very cool project called Charm.

The project provides tools and libraries to build out Terminal User Interfaces (TUIs) using Go. It helps to create terminal applications that improve Developer productivity which I highly appreciate.

How did I start

I joined their Discord channel a while back, and mostly lurked around seeing all the TUIs built by other users, and how contributions were being discussed. It led me to try out the examples provided within the repositories and reading the source code for it. After feeling slightly comfortable for it, I took a look into the GitHub Issues created and found this particular one https://github.com/charmbracelet/huh/issues/367 .

First steps involved reading through the issue, and attempting to write minimal code to reproduce the issue. I started looking at the related functions to figure out how and why the output is being rendered. After trial and error, created the necessary changes to help fix the issue, and requested a PR Review!

It got merged in PR-427 (technically PR-425), and I’m very glad that it did! 🎉

Why it’s important to me

I’m finally in a position that I’m able to contribute back to Open Source, that hopefully benefits 1 developer atleast. Having the Source Code available helps me learn how and why the changes were made. It provides an opportunity for making a mental model of the given system, which is a good challenge. Finally it’s in Go and I enjoy writing in Go.

I’m grateful that the my first Open Source Contribution is towards Charm and looking forward to helping out more!

Next Steps

I’ll continue watching for GitHub Issues across the multiple tools that they provide, and consider trying to solve those challenges mentioned.

References