DEV Community

Kannav Sethi
Kannav Sethi

Posted on • Edited on

My Fourth and Final Contribution to Hacktoberfest

My 4th and final contribution to Hacktoberfest was made to a repository that I have contributed to in the past, DiceDB. The project is centered around the idea of being an in-drop replacement of Redis while being more optimized than it.

Issue

Previously I had contributed to this repository by solving an issue that was related to testing out a particular Database Operation ensuring the functionality aligns with the documentation and if needed making changes to the documentation.

This time around, I wanted to contribute to the codebase, part of the reason being I wanted to learn GoLang and the other being getting a gist of how tools/software like DiceDB are built, what is the intuition to such a good design.

So I found an issue that was not too hard to grasp initially but would also help me achieve the goals I mentioned earlier.

The issue was centered around the idea of resolving and fixing a certain error message and giving the right error message in an appropriate situations

Process of finding and correcting the error

The idea was to first find the issue and then resolve it

Since I had pretty much no knowledge of how GoLang works, I first went to the docs for the same, familiarized myself with the first principles and the syntax of GoLang, and then went back to solve the issue

Since this project was vast, I utilized VSCode's search functionality to find where the error was being logged, and what functions were associated with the error message.

After I found the Point-of-Interests for me, what I did was to isolate the issue from the other parts of the codebase, made the current logic make sense to me, separate the error message, and then add the fixes for the same.

PR

After I had resolved the issue, I opened a PR to get my changes approved and merged into the main branch, but turns out someone else had there changes merged into the main, so there was conflicts

I then had to use the rebase command to rebase my topic-branch on top of the new changes that were merged into main


git rebase main 

Enter fullscreen mode Exit fullscreen mode

After doing so, there were no conflicts and soon the PR was approved by the maintainer to be merged into the repo

Conclusion To Hacktoberfest

In wrapping up my Hacktoberfest contributions, working on DiceDB allowed me to dive deeper into Go and learn firsthand how a Redis alternative is built. Resolving an error-handling issue helped me grasp Go’s syntax and debugging in a real-world codebase.

This entire experience shaped how the dilemma that I used to have with contributing to OSS projects, it gave me one of the best skills that any developer could have i.e. adaptability as during my experience with Hacktoberfest, Almost all of my contributions have been to projects that have used a tech-stack that I've never had any experience with

I have loved each and every aspect of Hacktoberfest!

Top comments (0)