Three Tips for Submitting Your First Pull Request - from a Beginner
Tags: beginners, opensource, codenewbie, tutorial
Published: 2022-03-22 20:19:16

_Cover Photo by <a href="https://unsplash.com/@synkevych?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Roman Synkevych 🇺🇦</a> on <a href="https://unsplash.com/s/photos/github?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>_

I have contributed to two repositories so far:


![The two repos I have contributed to](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drlts0vcrdcpj8whuk6y.png)


My first PR was very stressful as I had little to no idea what I was doing, and I made a couple of mistakes on the way. 

My second PR was easy, but it took a while to complete because I was lacking in one skill. 

Here are some things that I have learned so far as a beginner in Open Source development:

## 1. Read the Contribution Guidelines Before You Do Anything

That was the first mistake I made when I worked on my first PR. And it was a pretty big mistake at that. Not all projects are handled the same. That's why they have unique guidelines in place if you want to contribute. Those guidelines can either be found on the repo's Readme file or a separate markdown file dedicated for contributions. 

Here are the struggles that I went through because I didn't follow this piece of advice:

### I worked on a contribution that was above my skill level.

I was looking for issues with the "beginner" tag. This was the first issue I stumbled upon:


![a screenshot of the issue](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qagavk2eeig4qe2dd1a0.png)

It looked simple on paper. The issue also included a link to a tutorial for reference. It's a decent first contribution. It can't be that difficult, right? Wrong! If I read the contribution guidelines, I would have found this:


![contribution guidelines describing the tags](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0nj8yvle4rqhlk1hqsbc.png)

It's not a good contribution to work on as a first-timer. Even though a tutorial was provided, I still had to juggle through many browser tabs to understand how continuous integration, continuous development, and automation works. On the bright side, I weathered the storm and got everything to work. 

### I didn't follow instructions.

I realized that contributing to a repo is not a one-size-fits-all approach. 


![must make contributions to dev branch](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1kqkffhtvuddpgq70zmp.png)

For this project, I was supposed to work on the dev branch. Instead, I did all of my work on the main repository. I had to cut all of my code and start over. 

There is also a specific format for my commit messages:


![how commit messages should be formatted for this project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0lq6n33niimtrq68luov.png)

I didn't follow that format. Fortunately, it didn't pose an issue, and my branch was still merged. Regardless, it looks odd among the sleuth of properly formatted commit messages:


![the commit messages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2axexuiouf7sdf70vwza.png)

Guess which one is mine.

## 2. Know Your Markdown

Markdown is the language of GitHub. It's also the language of DEV Community. If you can spend some extra time to learn markdown, it would pay dividends. I watched a video tutorial on the subject, but I didn't retain any of the information.

For my second PR, I edited a repository's readme file. I had to go over how elements such as tables and hyperlinks are structured in markdown. If I spent some time memorizing the fundamentals of markdown syntax, my second contribution wouldn't take so long.

## 3. Link Your PR to an Issue

If you're submitting a PR in response to an issue, make sure you link the issue to the PR. It will help the project maintainers know what your PR is about instead of having it out in the open. 

## Conclusion

These are three essential things that I should have known before submitting my first PR. Since I'm a beginner, there may be more tips that I don't know of. If that's the case, feel free to leave a comment.

## Thank you for reading

Here are some tutorials that helped me learn how to open source:

{% embed https://www.youtube.com/watch?v=yzeVMecydCE %}

* [How to Contribute to Open Source Repo](https://github.com/freeCodeCamp/how-to-contribute-to-open-source)
* [Zero to Hero: Get started with Open Source Projects](https://dev.to/ruppysuppy/zero-to-hero-get-started-with-open-source-10b7)

Here are the two repositories that I contributed to:

* [Ozone by Milind220](https://github.com/Milind220/Ozone)
* [Clone-IT by Rayman-Sodhi](https://github.com/Rayman-Sodhi/Clone-IT)

Want to connect? Here are the links:

* [GitHub](https://github.com/kowshik-noor)
* [LinkedIn](https://www.linkedin.com/in/kowshik-noor-58ba9967/)