# How to Get Started with Contributing to Open Source

## Метаданные

- **Канал:** AssemblyAI
- **YouTube:** https://www.youtube.com/watch?v=RGd5cOXpCQw
- **Дата:** 21.11.2022
- **Длительность:** 14:39
- **Просмотры:** 58,594
- **Источник:** https://ekstraktznaniy.ru/video/12884

## Описание

Contributing to open source projects is a great way to improve your skills. But it could be a daunting task to find and work on your first project. In this video, we go through a step by step guide on how you can contribute to your first open source project.

Let's get started!

Places where you can find projects:
*  [Up For Grabs](https://up-for-grabs.net/) 
*  [CodeTriage](https://www.codetriage.com/) 
*  [First Contributions](https://firstcontributions.github.io/) 
*  [24 Pull Requests](https://24pullrequests.com/) 
*  [Contributor-ninja](https://contributor.ninja/) 
*  [First Timers Only](https://www.firsttimersonly.com/) 
*  [SourceSort](https://web.archive.org/web/20201111233803/https://www.sourcesort.com/) 

▬▬▬▬▬▬▬▬▬▬▬▬ CONNECT ▬▬▬▬▬▬▬▬▬▬▬▬

🖥️ Website: https://www.assemblyai.com/?utm_source=youtube&utm_medium=referral&utm_campaign=yt_mis_33
🐦 Twitter: https://twitter.com/AssemblyAI
🦾 Discord: https://discord.gg/Cd8MyVJAXd
▶️  Subscribe: https://www.youtube.com/c/AssemblyAI?sub

## Транскрипт

### Intro []

hey welcome today we're going to learn how to contribute to an open source project from beginning to end so let's get started here are the steps that you need to follow first you need to find a project second you need to decide whether to contribute to this project third you need to read the documentation and understand the concept of this project fourth you need to find something to work on fifth you need to ask for more information or clarification sixth is when you actually work on the project and seven is when you submit your solution with a pull request so

### Finding a project [0:38]

let's start by finding a project so the first thing that you should do is to think of all the tools and libraries and technologies that you're using and see whether some of them are open source or not that would actually make it easier for you to understand the context of this project and also to contribute to it for example Pi torch is a library that we use for machine learning and it's also open source so you can contribute to it if you're already using it but if you don't have any ideas for that there are some websites that will be very helpful for you to get started for example GitHub great for new contributors website features a bunch of projects that are great for new contributors because they are known to be friendly they're known to be active you can just look through some of these projects to see if there is anything that catches your attention there are also a bunch of other websites for example up for grabs also lists a bunch of projects that you can contribute to or code triage for example has a bunch of projects again listed with the amount of issues that they have and if you click on them with more information but there are a bunch of other more websites out there that you can use as a first-time contributor I will have a full list in the description below once

### Evaluate the project [1:50]

you find a project that you want to contribute to you should first evaluate if it is a good project for new contributors so I'll show you some criteria on the YouTube DL library that I use quite often and it is a open source Library first of all to understand if it's actually an open source Library you should check out some of the documentation for example it has to have a license to understand if it's a open source project or not and then there are sometimes some other documentation for example code of conduct or a contributing documentation to tell you how you should contribute and what are the steps involved and then

### Check the issues [2:28]

you should check how many comments have been done and when was the last comment so you don't want to work on a project where people have already forgotten about the next thing to take a look at is the issues so how many issues are there when a new issue is being posted is someone responding is a maintainer responding to these issues so let's see for example this issue was posted three days ago and we see that someone already responded to it we also want to check if people are raising the issues recently so we see that there are issues the latest issue is from only 17 hours ago and we see that a lot of issues are being raised and we also want to see are these issues being closed or only people creating or raising these issues but we see very recently two days ago or yesterday or three days ago new issues were being closed that so that tells us that people are working on these issues actively and that makes it a good project to work on next we want to look at the pull requests because that's how people contribute to open source projects we want to see if there are new pull requests that are being opened and we see that you know there is one from three days ago nine days ago and you also want to see if someone is responding to these pull requests so we see here again that someone very likely a maintainer said to this person who worked on this issue thanks for your work I made some suggestions and comments it should be good to go soon that's also a nice thing to know you want to see that the maintainers or the people responsible for this project are thanking the people who are contributing to this project you don't want to be dismissed very easily right you want to see that they are appreciative of your work and the last thing that you want to see is whether they are giving you feedback when they are rejecting your pull requests so if we can find a pull request that was rejected we see that this person made a pull request and uh yeah we see a whole discussion that went on here it's nice to know that even if you do a lot of work and it gets rejected at the end you will be able to get some feedback on the work that you've done so knowing all of

### Read the documentation [4:34]

these things actually tells us that this is a good project to contribute to it is friendly it is open and it wants more people to join in it and contribute to it so the next thing that you want to do is to understand a project a little bit better and there is no other way to understand a project better than to read the documentation this might be a project that you already worked on so maybe you already know how it works and what it does but it's already a good idea to kind of understand the jargon and the terms that are being used by the developers and the contributors in this project to read the readme generally just to kind of glance through it and you can also read the documentation quickly you can read the contributing documentation here for example is for developers some instructions and some projects also have a code of conduct so I can show you that on this other Library and this code of conduct tells us basically the vision of this project so they don't have it on GitHub here they have it on a separate website but basically they talk about what is important to the people who are developing this project what is the vision what is the kind of context that they're going for that's important to know also just to kind of understand the General Vision and where this project is going to when you want to add some new code to it or maybe a new feature to it so after reading the documentation understanding the project a little bit better and after reading the contribution documentation to understand how you can contribute what are the steps that are involved the next thing to do is to find an issue that you can work on

### Filter the issues [6:13]

so there are a bunch of ways how you can do that one of them is just to go to the documentation page of this project and literally look for typos so this is documentation of YouTube the DL algorithm and it could be as simple as finding a typo maybe install was typed incorrectly or there is a sentence that is not 100 clear you can basically just make a contribution by fixing that sentence and making a pull request another thing you can do is to go to the issues that are already open so you don't have to find a new issue and filter the issues with the label good first issue many open source projects have this so if you just filter a good first issue you will see a bunch of open issues that would be good for first-time contributors to contribute with so for example let's say we want to deal with this issue you can go here it also gives you a nice idea of how the issues are created what problems people are having you will be able to read the description and maybe there's going to be a discussion that already happened here you should read through all of this before deciding to work on this of course and if you decide to work on it at the end you can leave a comment and say Hey I want to take this on I want to work on this project it's also good to see that no one else has already said that and is working on it already and if you have any other questions or if you want to ask for clarification this would be also a good place to ask about it because this is where the issue is so you shouldn't create a new issue asking about it and

### Look for the word to do [7:49]

the last and a little bit more Advanced way of finding things to work on is you can look for the word to do in this repository and many times you would see maybe you already experienced it yourself too when you're developing code sometimes you just write something that you think that needs to be done in the future but it's not the highest priority you think that you'll do it in the future but you never actually get to it and these code bases of course are full of those things so you can just look forward to do and see what needed to be done understand this code and maybe create an issue and say hey I'm going to work on this now the fifth step of

### Ask for clarification [8:25]

asking for clarification is not a must do of course if you're just fixing maybe some typos and a documentation you don't really have to ask for more clarification or tell people that you're working on it but if you're offering maybe a new feature if you're offering a big fix you should always let people know that you're working on it if you are working on a specific issue you should probably ask for clarification on anything that you don't understand inside this issue as I've already said and also let people know that you are working on this issue before you get started all right so now for the fun part when you want to contribute to a project when you already found the issue that you want to work in the first thing that you should do is to Fork it for kidney means that you're going to copy all of this code into your own account in a way so and that's what you're going to work on this copy so you're not going to affect the actual code that other people might be working on now I want to get this code on my

### Cloning the code [9:24]

local drive so that I can work on it on my ID of preference so I'll just start the terminal here make it bigger so you can see I will navigate to my desktop and maybe make a directory here where I call open source and inside open source I will clone the code that I just forked once you have your code already here in your local drive and before you do any changes you should again go and look at the contributing guide because there could be some specific ways that they want you to do the changes and document the changes so it's always a good idea to make sure that what you're doing matches the rules of this open source project and most of the time they're going to have a step-by-step guide for you to do some changes in the code next we want to create a new Branch to work on our changes in the code or in the documentation first I want to see which branch I'm on already I'm on must master so I want to create a new branch with whatever name you can say mistress contribution and then I'll see that I'm still on master so I'm going to change it to Mrs contribution branch so now if I check where I am I'll tell me that I'm on the Monstrous contribution Branch so now I can open the code in the code editor that I like and let's change something for now just so that we can see how the pull request process works so for that let's say I'm just going to remove this Etc here all right so what I want to do before I push my changes is to make sure that nothing has changed in the original project so if you remember I'm in the Monstrous contribution Branch I'm going to go back to the original branch and then I'm going to do a get pull everything's up to date but you know sometimes maybe the issue that you're working on takes a couple of days or maybe even weeks so you want to make sure that you are staying up to date with the actual code that other people are working on too and then I want to go back to monstrous contribution hmm and I'll do another git pull again um I see that okay there is nothing that has already changed here either the next thing that I want to do let's clear the terminal is to add all of these changes together if you did multiple and then say commit if you are changing or fixing anything specific that is mentioned in the issues here is a good place to specify it and reference it for example you can say issue number 37 sold or fixed you can say but if that is not the case which for us I can just say updating read me getting rid of extra words for example just to kind of explain what you're doing here and then I say get push and I would like to push the branch of the same name on the remote so I use the second suggestion that they mentioned and my changes are now on GitHub now that my changes are on GitHub When I

### Creating a pull request [12:50]

visit the GitHub page again here is what I see I say Mrs contribution had recent pushes less than a minute ago and here's how I create a pull request so I just click compare and pull request what you want to do is to make sure that you are pushing to the base branch of the original repository from the Monstrous contribution branch of your forked repository so here they already filled in some things for you to fill in but this is a good point to go back to the contribution documentation to understand if there are any patterns that you need to follow if there is any extra information that you need to include sometimes they would like to see screenshots for example of the change and once you're done with all of this what you need to do is to say create pull request and your pull request your contribution request will be sent to the main repository of this project one little note here if you're still working on the code and you're not done with it but you want some feedback you can also instead say create draft pull request and that way you're telling people that this is still ongoing work but you want them to take a look at it once you create a pull request of course it might take a little bit of time to get some feedback your changes might be rejected accepted or maybe they will have some feedback or comments for you to work on and make some changes to so just keep in mind that this is an open source project a lot of people are working on it there are a lot of contributors and we're trying to keep a friendly and open Community to work together and learn together and grow together so I hope this video was helpful to you if you have any questions don't forget to leave a comment down below I'm looking forward to seeing you in the next video thank you
