Contributing to an open source tech project on github.
Tags: opensource, webdev, 100daysofcode, codenewbie
Published: 2023-02-05 16:30:24

In this article I am  going to talk about some of the advantages of contributing to open source projects and how you can start doing it. 

## Advantages of contributing to an open source project

- It helps you build the muscle power needed in programming by giving you different projects to work on.

- It helps you learn new skills, tools and different programming technologies.

- It builds your reputation and you can showcase the contributions to prospecting employers.

- It helps you meet new people.

- In the process of meeting new people you get to improve on your communication skills as an individual.


 Since you are now convinced of why you should start contributing to open source projects, how can you start doing that?

### 1. Identify a project that you are interested in.
The first thing that you need to do is identify a project that excites you among the many projects that the community maybe working on. You can do this by going to your community's homepage on github or gitlab.
i.e In this article I will be using the github as my primary reference. 

### 2. Fork the repository



![forking the parent repo tab](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgqajrq0707eabm94zyb.jpeg)
This will give you your own cpy of the repo that you can manipulate when working on the project.

### Clone the repository
Since git collaboration is an advanced feature when working with git I will assume that you are familiar with this step and I will jump right into you going to get an issue you will be working on.

### Getting an issue.
An issue is a feature that you will try to implement and see that it's functionalities work as it was intended in the initial design. An issue will come with an explanation of where you need to place the components needed in achieving the desired feature, how the feature should look like and sometimes a link to the project design.

![issue tab](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bbswielkfyw5n20x5v3o.jpeg)

Issues are taken from the parent repository where you forked the project and they are continuously updated by the project lead.
When you have picked an issue that you want to work on you can leave a comment to tell everyone that you will be working on that issue and they can choose something else to work on.

### Creating a pull request
After working on an issue and being confident that your code works as intended you have to commit the changes and push the code to github.
After pushing the code you go to github and create a new pull request so that your work can be reviewed and get merged to the main project.

![new pull button](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgnrwavqfnkpblwduty3.jpeg)

After creating a pull request you can notify someone to review your changes on github.

### What happens when changes have been merged.
After a contributors changes have been reviewed and merged to the main project you have to sync your forked repository with the main repository.
You can do this by going to the github repository that you forked and syncing the fork.

![sync fork icon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/026ii5tkbj77zjsqrrhb.jpeg)
After this you have to do a `git pull` on the terminal to get the changes locally on your machine then you can continue working on the project.

### Extra tip
When making commits to github you can add some descriptive emoji just to spice things up and also make the person reviewing the code have an idea of what you were doing even before looking at the code or the comment sent.
Here is a link to gitmoji that can help you achieve sending emojis when doing your commits.
[gitmoji link](https://gitmoji.dev/) 

For example, after updating your readme file you can commit something like: " :memo: updated my readme file"

Thanks for reading!
Have a lovely time!