DEV Community

Cover image for OS / How I made my first PR to DEV as a code newbie
icncsx
icncsx

Posted on

OS / How I made my first PR to DEV as a code newbie

In the past six months, my relationship with DEV was strictly limited to consumer and provider. I learned tons of new things and gave nothing back to the community. This is partially why I started blogging here. Another way I wanted to give back was contributing to the DEV code base itself, thereby incrementally improving the infrastructure that hosts this beautiful community. On May 19th, my PR was finally merged, and I decided to write a blog post about how a code newbie did it.

Step 1: Check open issues

I checked the main repo to see if there were any open issues. There were more than 700 of them. Great! "More chances for me", I thought to myself.

Step 2: Select an open issue

After I scanned all of the open issues, I picked a "manageable" one - something I could reasonably do in under 2 weeks. I imposed this restriction on myself because I was neither familiar with DEV's code base nor Ruby on Rails which is what DEV is built on.

Step 3: Raise your hand

On May 13th, I pulled the trigger and raised my hand, signalling to a core developer (@ridhwana ) that I wanted to work on issue 7835. I wrote to her, "If this is not taken already, I can take this!"

Step 4: Wait for approval

Typically a core developer will assign an issue to you, and that's when you can get started working. After all, you don't want to work on something that's already been claimed or worked on. Another core developer (@lightalloy ) promptly wrote to me, "You're welcome to work on this issue."

Step 5: Fork the repo, create a branch, and install locally

Complex projects typically have a dedicated README.md for contributing. Here is what DEV's contribution document looks like. The most complicated part was the installation process. I needed to install the development environment, so I followed the installation guide. Docker didn't work. Welp (๐Ÿ˜ข)! So I installed DEV on Linux, which required PostgreSQL, Ruby, Rails, Redis, etc. All of of those dependencies are detailed in the installation guide.

Step 6: Work on it

Finally, I was ready to contribute. Thankfully, the issue had been linked to another issue which had been documented really well. It even had a PR to go with it. So I was pretty confident about making the right changes.

Step 7: Create PR and solicit feedback

2 days after I was assigned the issue, I made a PR to DEV. And it went pretty smoothly thanks to the core developers: @rhymes and @lightalloy . Both left me helpful tips on what to fix and I made two commits thereafter fixing my errors. I also made sure to add some comments on Github to document why those changes were made.

Step 8: PR gets merged and you celebrate

3 days later, the PR was finally approved by a majority and merged to master. PR #7895 will forever be mine... forever in the annals of DEV history (๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰).

Main Takeaway

Here is what I want you to takeaway from this post: you needn't be brave to make open source contributions because bravery is not the absence of fear. Bravery is about acknowledging that fear and deciding that the want to contribute is decidedly more significant than our competence, image, and self-importance. Remember, the worst thing that can happen is for your PR to get rejected because almost no one will criticize you for sharing the product of free labor. Here is one of a gazillion PR's I made that got rejected. More failures to come from me...

Warmly,
EK

Top comments (15)

Collapse
 
ridhwana profile image
Ridhwana Khan

Here is what I want you to takeaway from this post: you needn't be brave to make open source contributions because bravery is not the absence of fear. Bravery is about acknowledging that fear and deciding that the want to contribute is decidedly more significant than our competence, image, and self-importance. Remember, the worst thing that can happen is for your PR to get rejected because almost no one will criticize you for sharing the product of free labor

I truly love this takeaway! Congratulations on your first contribution to DEV and I'm so glad that I got to interact with you in this milestone ๐ŸŽ‰Looking forward to many more interactions ๐Ÿ˜

Collapse
 
icncsx profile image
icncsx

Thank you, @ridhwana and we will for sure keep in touch. I saw that you had assigned some issues to me. Yay!

Collapse
 
rhymes profile image
rhymes

So awesome! Thanks for the love and for the contribution. Looking forward to the next ones.

We recently merged a new redone container based installation. It now uses podman for Linux and the experience should be better, if not, please open an issue about it ;-)

You can find the new installation instructions here: docs.dev.to/installation/containers

Collapse
 
icncsx profile image
icncsx

The next ones are coming; don't you worry ๐Ÿ˜Ž. And thanks for the note about podman. Not that local installation was tough or anything but podman could definitely lower the barriers to contributing.

Collapse
 
rhymes profile image
rhymes • Edited

That's definitely one of the goals!

Looking forward to the next PRs :D

Collapse
 
peter profile image
Peter Kim Frank

Congrats on your first PR!

PR #7895 will forever be mine... forever in the annals of DEV history (๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰).

Love this!

Collapse
 
icncsx profile image
icncsx

Thank you, Peter, and the rest of the DEV core team ๐Ÿ™. Y'all sending me super positive vibes~

Collapse
 
madza profile image
Madza

Congrats and thanks for making this platform better :)

Collapse
 
icncsx profile image
icncsx

It's comments like yours that give me that much needed jolt of energy in the early morning~

Collapse
 
jankosutnik profile image
Jan Kosutnik

This was a pleasure to read. Congratulations DH, big win, amazing. Donโ€™t stop ๐Ÿ’ช๐Ÿป

Collapse
 
icncsx profile image
icncsx

Thank you, Jan! Can't stop won't stop ๐ŸŽต~

Collapse
 
saurabhdaware profile image
Saurabh Daware ๐ŸŒป

Congratulations on your PR ๐ŸŽ‰ And great article! This is super useful for people who want to contribute to open-source ๐ŸŒป

Collapse
 
icncsx profile image
icncsx

Thank you, Saurabh! More contributions to come hopefully~

Collapse
 
sharangw profile image
Sharang Wakankar

That is great news, keep it up!

Collapse
 
icncsx profile image
icncsx

Thank you, Sharang! I'm trying my best :)