Complete Guide to Open Source - How to Contribute

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
in this video we will talk about open source and why you should care about open source not only improve your technical skills but also your communication and networking skills so you can get the jobs and client and money that you deserve we will cover git and the platform github and go through all those tabs you see across the top we will also talk about how you can find open source projects to contribute to how to contribute using the github ui how to make your issues and pull requests and your github profile pop so you can stand out from the crowd how you can make money from open source directly and indirectly hi my name's eddie and i've been a full stack developer for over 15 years i have a youtube channel that focuses on open source if that sounds interesting to you the link is in the description below head over to my channel and subscribe and hit the bell so you get notified every time i post a video in this video we will start off with the basics and then we'll go through to the more advanced features if you want to skip ahead there are the timestamps in the description below don't skip just yet even if you're an experienced developer i'm sure there are some tips you'll pick up in the more basic sections and if you have any tips or any feedback anything i say please leave a comment below and i will reply open source is social coding so it's like social media but on steroids on places like instagram people can like your pictures they can comment and re-share on github people can not only style your project comment on your code fork your project to share it but they can also contribute back they can make improvements we can stand on the shoulder of giants on other awesome projects to make even better projects and then we can contribute features and bug fixes back to that original project even if you're not contributing to open source just yet i'm sure you're using open source projects why you should care about open source because you're probably using a lot of open source if not all the tools and projects you're using are probably open source and it's great that you're using these amazing open source tools but they're only there and available because of people like you who contribute to them and you may think oh i'm not an expert to contribute to any of the big projects like react for example but your fresh pair of eyes can add so much value to any project have you ever been reading some documentation and you've read step one okay i've done that step two done that step three oh how did i get there i think there's a missing step by you adding that step and contributing back will not only allow you to improve your documentation skills to improve your communication skills to network with other developers future employers it also help other people in the community it will also probably help you as well further down the line when you come to use that project again and you forget about that step you check the documentation and it helps you that's happened to me multiple times in addition to that it's becoming more and more important companies recruiters are now looking on github to find people and they're not looking for the best coders a lot of them actually looking for the right attitude are people getting involved in the conversation can they collaborate with other people can they give constructive criticism back to say someone's work but also be supportive at the same time these are skills in addition to coding and that's really important what a lot of these companies look for now so do get involved in the discussion on github and i'm going to take you through how you can do that on other platforms for example like linkedin you can write anything you want this is why cvs and linkedin aren't that useful github is becoming more and more useful and you don't have to contribute massive amount of work little and often it's like brushing your teeth you brush your teeth every morning and evening if you miss one morning or one evening your teeth aren't going to fall out it's not going to go black but over time your teeth stay healthy the same thing with open source do a little and often therefore your github profile stays healthy and then people can discover you from different projects that you've contributed to other conversations that you've got involved in you're probably more familiar with this process on places like twitter how you discover people how people discover you github is just the same and it's a great way to get discovered from your future employer or your future client so i've mentioned git and github let's talk more about that let me start with git because that underpins github there are many source control management systems but git is on steroids it not only has additional save points where you can save your work as you go along each time you're happy with it therefore if you make a mistake you can go back to your previous save point and source control management systems also have branching so you can create a copy of the work and prototype create spikes practice do certain things and still have those save points but only bring them back in for the rest of the team to use once you're happy and ready for it the big main advantage of git is it's very efficient very fast it's distributed which means you can work offline and just reconnect when you get internet connection again later on and you can do things like rebase which is like rewriting history so git is a great tool for collaboration so what is github github is built on top of git and gives you so many powerful features which means you can use git via their web platform but also you get issue tracking you get project boards that are like trello boards you get continuous integration which they call github actions i'm going to show you that all shortly you know what let's go to my computer and dive straight into it so now let's head over to github now you can see you've got github behind me this is my profile page on github and i've got a customized profile page which you can do by creating a repository the same name as your username you can see some of my highlights on my achievements i'm a github star the organizations that i belong to sponsors that i have and the people that i sponsor what you're probably more used to seeing is the pinned repositories and your green activity bar and this is what companies use to discover you that's why it's really important to be part of one organization be part of a community and to contribute to projects so let's pick a project and let's contribute to it so i can show you how you can easily make a contribution to other projects as we're on free codecamp's youtube channel i thought it'd be important to pick a free code camp project so let's start from the top and work our way down the page and then we'll make a contribution as you can see in the top right we have people that are watching the project that means for every change that happens on the project they'll get a notification and the notification depends on how they set up their notifications in their account so some people will be email some people would be notifications stars are like people who have favorited the project like bookmarked it and they'll get notifications in their github feed so not notifications that they've been tagged the notifications in their github feed forks are people who have made a copy of the project into their own account so they can make changes and we're going to do that shortly so stay tuned and then we have the tabs along the top we have code and that's the default tab that you land on and you can see the code underneath and you can navigate around between the code you can see the files you've also can switch between branches branches are taking a copy of the code base and allowing you to make changes to that without affecting everybody else on the project so we usually use branches a lot that are short-lived for a feature branch a spike branch a bug fix a branch and they'll get murdered into the mainline branch via a pull request when it's been reviewed tags and releases allow you to create a save point in your code base that can never change similar to a commit a release or a tag is higher up in that it will contain multiple commits and you usually name them like v0 1.2 we can add a file we can do a lot through the github ui i can even open in codespaces which is a new beta feature coming out in github which allows you to have your entire development environment in the browser or in vs code locally but actually communicating with a server on github that means you don't have to worry about installing node a certain version or python a certain version it will just work which is a game changer so when that comes out any day now for everybody else it is going to be really awesome it's really going to lower the barrier to everyone contributing to open source and then we can see at the top the last commit that happened it was five hours ago we can even click on the git hash and see the exact changes that happened at that point so hopefully you're seeing how powerful git and github are and also you can see the commits the commit is the entire history of changes and we can see who made it this is why it's important to give your commit an informative descriptive but concise so short title so when looking through the history it is really easy to see what happened and then you can find the one that you want and then you can click on the get hash where you can actually go see more details about what changed when making a commit message don't forget you can also give a description if you want to add more information if you want to make changes to your project or somebody else's i think it's really important for you to raise an issue an issue is an action point or starting a discussion saying to someone there's a typo in your project there's missing documentation or there's a bug this is how i found it and these are the changes that i think should be made that's really important the changes could come from you or from someone else that's the next step but raising an issue helps you get that green square on your github profile and also adding comments so replying to issues is really a great way to get involved with a project into the community get on their radar so when they are looking to hire people they're going to look at people who contribute to the project so you'll be first on the list this is the issue section on github and it's a great way to start the conversation on your idea or the bug you found or the enhancement that you want and not only that it's a great way for you to get involved in the conversation on other issues so do have a search do filter the issues for any issues you raise you still get a green square on your github profile issues have labels and the great thing about these are if you want to fix a bug or if you want to find something more challenging where help is wanted or if you want to find one that's a bit easier another label to look for is good first issue and you can click on these and it filters them so now they've been filtered down let's say if i want to create a new issue i hit on new and some projects have templates that means they'll pre-populate the description field let's pick one for example bug report as you can see in the description it's pre-populated and it's asking for certain bits of information if the issue you're raising doesn't fit into any category for example like this video then you can open a blank issue and it looks like this and if you're not too familiar with markdown yet don't forget you have got these helpers along the top and it's always important to add the description and then when you've written something in the description you can preview it to see what it looks like if you're a project maintainer you can assign to people you can add a different labels and projects and so on those are things i can't do because it's not my project as you can see people can leave comments below and the conversation can get started that's really important to have that conversation with the community and with the project maintainers next is where it gets really exciting is the pull request tab and to raise a pull request you need to make a change in another branch and that sounds scary but i'm going to show you how straightforward it is and how simple you can do it in the github ui so these are open pull requests so if i click on one we can go have a look at the changes so someone's written a good description it's got checklists of things that they've done i want to show you that in the markdown section how you can do that and you can see more commits have gone in and another comment and all from a bot has also been uh applied and you can see the commits that have happened you can see the checks that have occurred and we can also see the files that have been changed the red ones are the ones that have been taken out and the green ones with the lines that have been added and then in dark red and dark green show you specific characters that have been changed and if you don't like this linear view you can switch to split view which shows the changes side by side let's make a change this project so to contribute to a project let's find the file and the change we want to make using the github ui is very straightforward if i go to the git ignore i notice some inconsistency with the formatting so it's a silly change but it will show the process for you and still adds value to the project that's what you need to think about when making changes is it's about adding value to a project so you can see between all the sections there's one line gap between this section there's actually two so is it inconsistent i'm going to make a change to remove that extra line to do this you hit the edit button at the top right and github will automatically fork the project for you to create a fork for this project for you to commit your proposed changes to submitting a change will write it to a new branch in your fork so you can send a pull request i suggest adding a title that makes sense from your changes now i hit propose change and github has automatically taken me to the pull request page with it pre-populated if you come directly to the pull request tab and you have a branch that you want to create pull requests from remember to click compare across forks but github in this situation knows i'm coming across from a fork so it's already pre-populated that for me i can see the changes that i made i remove this extra blank line and now i can go create pull request and once i've gone through their template or put in some information if there isn't a template i can hit create pull request and if you want to make any changes you can click on the three dots and hit edit and make changes to the description if you want to make changes to the code you can go to files changed and you can also hit edit any future commits that you make to this branch will automatically get added to this pull request while it's still open if it's closed then you'll have to raise a new pull request if i head over back to my account and go to the repositories you can see the free code camp repo or project is also now in my account and it says that it's forked from free code camp free code camp so i can actually follow back to the original repository and people can find me from that repository so again it's social coding site people can then discover you and discover projects via different people in different organizations the actions tab is effectively continuous integration on steroids also known as ci and every time there is an event or a change this will run some actions hence why it's called actions actions can be tasks that run linters that check your code or automate a test to also check the code through to sending notifications to slack or discords actions is driven by a yaml file and it's really really awesome so that's one thing i also highly recommend you getting into and actually github has a marketplace for actions so you can see it almost has five and a half thousand actions for free that you can use on your projects from sending notifications to linking different platforms together and you can even write your own custom github action in javascript or another language if you click on one of these actions on one of these jobs you can then see what is going on and you can see the different steps so if there is a failure you can dig deeper and find out what went wrong the great thing about this automation it removes having discussions about little things and then you get to focus on the more important discussions on actually adding value to each other and learning from each other in the security tab there are suggestions for your project on improving the security do have a look at that do click on it you can get more information also in the insights tabs it gives you insights on the project on the contributors on the community you'll notice that a lot of projects are missing these steps and you can contribute to the project by adding a code of conduct by adding an issue template etc the last two tabs i want to show you are discussions tab this is a beta feature that is coming out very soon and it's really awesome so it still uses markdown just like issues but it's like issues on steroids because you could have threaded conversations think of forums people can ask a questions it can be a question and answer it could be general it could be ideas could be show and tell and also a new feature coming out shortly is for different projects to create different categories but people can reply people can mark an answer as accepted and then people continue the conversation in underneath each other so you can have different threaded conversations the last tab on github i wanted to show you is the projects tab this might look familiar this might look like the trello board you can create different columns they have templates that you can use this is the kanban one where you've got to do in progress in review and done and these are the issues that we created earlier and when we can drag and drop them between different sections as we work on them and that's really good for people to see the progress of the project and if you want to add an issue from here directly you can add a note and then convert it to an issue very simply one more tab that is interesting is the wiki tab it allows you to write markdown markdowns mentioned everywhere as you notice and have your documentation in the wiki section and it's a wiki underneath is actually a git repo so when you learn how to use a git repo on the main repository on the main project you can actually use it on the wiki 2. i've actually honestly started using the wikiless not because i don't think documentation is important actually i think it is very important but i actually started putting the documentation in the code base under the docs folder and the reason for that is when i add a new feature to the project i actually add the documentation as part of that change as part of that pull request so when someone's reviewing the code changes the automated test changes they can also review the documentation changes and that just keeps the quality of the project really high but the wiki can also be used for documentation it depends on your project and your team i highly recommend if it's an open source project putting documentation in the repo under the locks folder because then it can go through a pull request and get reviewed and not only to get reviewed but also to get knowledge transfer between the team members and the community so now you know how to use github let's talk about how to find a github project that you can contribute to you can contribute to any project but let me show you some tips and tricks on how to find ones that are more inclusive more welcoming i mentioned some labels if you go to the issue tab on any repository you can filter by the issue like first timers only but that limits you to one project another thing you can do is the issues at the top on github you can then see all the issues that you've created or been assigned but you could also filter github by a label so it's label colon hacktoberfest you can do this by clicking on any label so if you want to filter by good first issue you can click on filter by good first issue now you can see all these different projects that have got a label with good first issue another really good way to find projects is on twitter the people you follow maybe they mention some inclusive projects that want some contribution that will help you and mentor you get up to speed with their project you're probably already using libraries in your project or using a framework you'll know those quite well or you've probably noticed bugs are missing documentation those are also good projects to contribute to a real secret tip before contributing to a project that you're thinking about contributing to is actually check the closed issues and the closed pull requests this is really important see which ones were closed and were they closed in a friendly and collaborative way does someone write thank you very much for making this contribution but unfortunately this doesn't match with x y and z or was it just closed of no comment so therefore the contributor doesn't realize why their changes were not accepted it's really important to contribute to an inclusive project because otherwise it will be disheartening if your hard work gets closed for no reason if it's something they don't want which is why you should raise an issue first at least there's a good reason why it wasn't accepted and then hopefully have given you motivation or an idea of other things you can contribute to in the future to have it accepted and merged another tip that i found recently that i really want to share with you is if you found the project that you want to contribute to for example this one search the project for to-do's a lot of the time people put to-do's in the projects and never actually raised the issue and these to-do's get forgotten about maintainers in the community will really appreciate if you find a to-do raise an issue and if you can make the change and make the improvement to remove the to-do everyone will really appreciate it let's go through the markdown basics so that you know how to write a really good issue and really good pull request so you can stand out it's important for you to know the eight different markdown syntax a single hash is a heading one and that gets converted to a h1 in html and you can do two hashes to create a heading two and that goes all the way down to heading six that'll be six hashes then you can write normal text normal text and then if you want something bold you would wrap it in double asterisks on either side and if you want italic text it's a single asterisk on each side if you want a strikethrough it's double tilde on both sides let's have a look how that renders and you can see preview at how it renders what other awesome things can you do so you can also do lists so we can do an unordered list this is item one item two with the sub list sub item 2b we can preview that and you can see how it's indented with the sub list as well and we can also do an ordered list and a trick here is not to do them one two and three is actually just to do one on all of them and you may think why the secret is the github will do the rest for you and therefore if you move any items around you don't have to keep renumbering them all the time as you can see it reads one two three and github also uses that on the issue list and the pull request and it's really important to give an overview of an issue or progress what stage is at how much progress has been done and the way you do that is with square brackets and a space in it so you can say item one incomplete but if you want to make item two complete we put an x in it and this would be complete you don't have to write the word incomplete and complete but you can see now item two is checked and item one is not if you wanna put links in you can't just paste the link but it might look out of place so if you actually want to put text that is shown that is linkable then you would put square brackets for the text that you want appeared so in this case free code camp and in the brackets you put the link where you want to go to so if you hit preview you can see it is still a link and it still goes to the same place it's more readable and more friendly and if you have an image that you want to display you can just put an exclamation in front of it and the writing in the square bracket will be the alt text and then in the brackets will be the path to the image and that can be a local path or a url of the internet if you really want your issue and pull requests to stand out you can also look at doing code blocks and tables let me show you so the first row is actually the title and we need to tell the markdown how the table is going to be rendered it's going to be left align centered or right aligned and you can do that with colon and three dashes is what i recommend you can actually make do more dashes to make the table look easier to read however as you change the column sizes with different content these will never be accurate so i wouldn't worry about trying to make the right number of dashes to suit the column because it's always going to change the width as you add and remove different content so we can left align the first column and let's right align the second column and now we can put in the first row so we can say row one a and then we can say row one b and you separate these by pipes and now if i hit preview you can see the table has come through and you can see column one is aligned to the left and column two is aligned to the right and you can also center a line by putting colon either side of the dashes and now you can see row 1b is now centered code blocks this is where it's really important to have your issue in progress stand out by using code blocks and there are so many different things you can do with code blocks with things like syntax highlighting or even diffs is epic let me show you so for inline code you use a single backtick this is backtick and you can say console.log and when you preview that it shows it in grey it's not very fancy it doesn't stand out massively so if you wanted to stand out more we could say example code block you do three backticks and then you put in the same code and you close it with three backticks now you can see it's a big blocks full width stands out a lot more but it's still not syntax highlighted so you can do things after the first three backticks you can do things where you put in the language so if it's markdown or if it's javascript or typescript or ruby or php or python whatever it is and when you render it actually highlights it this doesn't show it very well but you can see the log has changed a different color and if you're adding and removing things and you want to show what changes there should be then rather than doing two blocks like for example if i said const data equals this if you want to show the differences before and after in say an issue or in a discussion then to have two code blocks is quite verbose let me show you and show you a really awesome way to look really professional so we have two code blocks they are syntax highlighted but you can see before and after it's not very easy to see what changed you just gonna notice the brackets are changed from an array to an object but the way to look awesome you can combine that into one code block and the way you do that is you put both of them in the same code block and actually the type becomes a diff rather than the language the line you want to take away you put a minus and the line you want to add you put a plus and when you render that you can see it's really highlighting what you want to remove and what you want to change to and that's really awesome it's so awesome and so powerful that actually when you're reviewing someone's pull request rather than saying oh you need to change this bracket or something like that you can actually put in a diff in an inline comment and the other person can just click accept and github will take that diff apply it to that branch and pull request so it makes it become very slick and very efficient even with the linear conversation on github some people write a big block of text and you might be saying yes or no and it's unclear to which part the paragraph you're saying so it is possible to do quotes and i highly recommend that and what i mean by quotes is this if someone wrote i have idea one and also idea two if someone wrote they have two ideas in the paragraph and you wanted to say yes to idea one and no to idea two if you just say you would have to write yes and no and maybe it wasn't so obvious which ones you're referring to so one thing you can do that's what someone wrote when you reply you can quote what they said and it appears in the quote but even better you could split it apart remove the and have two quotes i agree with this i do not agree with this and so when you preview it it's really obvious to know what you were replying to otherwise the next comment that comes back is which one did you mean it wasn't very clear so it's really important to keep things efficient on github and that will help you with chatting on stack overflow on discord on slack because it's important to give enough information but not give too much that it's a book like war and peace because some people wonder why they ask questions and they don't get answers it's because their question isn't very good and people don't want to try and dig in and get blood out of a stone if you can make it really easy for someone to understand your question your idea your bug then it's more likely you're gonna get help having good communication be an issue be on social media be on discord or slack is a great way to get noticed and to get into the conversation another tip on a pull request is you probably have raised an issue for that pull request i highly suggest closing the issue when the pull request gets closed or merged and the way you do that is is you put a hash a bit like the heading title but without a space you put in the number that you want to reference to and then before that you put closes or fixes and you can write more after this but when this gets merged closed then it will also close the issue it reduces the admin for the community and the maintainer and that's really important put yourself in their shoes try and make their life easier when they're getting lots of comments suggestions pull request issues you want to make it as efficient for them as possible and remember you don't have to contribute a big pull request you need to keep it efficient and small as a project maintainer myself i would rather have more pull requests that are small because i can merge them very quickly in bite sizes rather than trying to spend an entire day going through someone's huge pull request so if you want to get your pull request merged i suggest keeping it small and concise i really believe there is no pull request that is too small let me give you another little gem on pull requests if you want to get feedback on your work sooner then i suggest raising the pull request but do this gem as you can see here on the right under the reviewer section you can convert your pull request to a draft that's really important it shows the community and project maintainers that you would like some feedback but it's not ready for the proper review to get merged in so getting that feedback early is really important start that the conversation in the issues and when you've made changes start it early in the pull request but don't forget to convert it to draft so people know that it's not completely ready otherwise you're going to get lots of comments of things you might not have quite finished yet and that's why it's important to have a checklist in the description as well and then when it's ready to have a proper review and everything's finished you can then convert it back to a normal pull request and remember i mentioned that doing a to-do list in your issue or your pull request shows the progress as you can see i have four to-do's and none of them are done and you can see that the progress is zero other ones have got four out of four this really helps maintainers and the community look through the list of pull requests to see what's ready for reviewing in this section we're gonna talk about how you can make money directly and indirectly from open source github now has a sponsorship program and what that means is people can sponsor you or you can sponsor people on the github platform and github takes no commissions if you sponsor someone ten dollars a month they're gonna get ten dollars a month and to take that even further github were doing matching that meant that if you sponsored someone ten dollars a month github would also give them ten dollars a month so either they could get double or you just half your donation and give the other half to somebody else because github will match it and you've probably seen this sponsor button on organizations and people's profiles so if you find an organization or a person that you really think they're doing great work in the community you want to support them click on that sponsor button and give them a small donation whatever you're comfortable with they will really appreciate it that's how you can make money directly from github so i suggest setting that up it's free to set up on your account i highly recommend setting that up because you never know who wants to sponsor you so that's the way you can make money directly from open source let me talk about the ways you can make money indirectly so i have mentioned about the networking and communication if you do regular open source people will then discover you and by people i mean companies headhunters hr departments recruiters hiring managers they will discover you and then they will contact you to offer you a job says you getting money indirectly from open source and that's really important i do open source on github and i do youtube videos and my biggest regret about both of those is not starting sooner because they have both accelerated my learning my career my clients the money i've earned i cannot encourage you enough to do the same instead of you hunting for a job instead of you writing a cv to match that job why can't the companies chase you and not even ask for a cv because they love your github profile they love your community presence so if you can write blog posts or do youtube videos i also highly recommend doing that to complement your open source you can talk about what you've learned what you're doing you don't have to invent something new you're probably learning something new every day just share that on github or on socials and do that little and often and you will get discovered some techniques that i use what i'm hiring for myself or for my clients is i want to look at people's github profiles there's no surprise there but i'm not looking how amazing their code is so if your code isn't amazing still put it out there i'm actually looking at their code today and comparing it to their code two three months ago and all i care about is that the code has improved in that time because that shows me the person is still learning and that's more important than being an expert in one area and also i'm looking for the person's attitude how do they communicate and collaborate with other people this is why i keep encouraging you to get involved in the conversation on other people's issues on your issues on other people's projects and your projects so other people can contribute to your projects and start the conversation with you and then you can communicate back it's really important to see how people communicate not only as a contributor but as a maintainer i suggest getting involved in the conversation if you're looking for resources to get involved in open source contribution free code camp have an awesome community driven project you can see it behind me there are almost 150 contributors to this project that shows the value of this project because it's showing different perspectives people with different backgrounds are giving their opinion so this project is going to add so much value so let's have a quick look there are translations of this project into so many different languages so if english is difficult for you then there are different languages that you can look at they might not quite be up to date and also if you're familiar with some of these languages or even just one of these languages you could read the english version and update it to your language which would really help the communities that's a really awesome contribution you could give back to the community and to this project this is translated into 11 languages if you know any other languages then feel free to make a contribution and translate it into that language it makes our community even more inclusive even right at the beginning of the readme it says this is a list of resources for people who are contributing to open source and if you find additional resources please contribute a pull request what a great way to start a readme it has blog posts from different people in the community and i think some of these posts are really interesting how to do searches searching on github can be quite complicated there are so many filters tips and tricks that you can do it's really convenient there are links here to make it so much easier for us to filter down the issues on github for example first timers only now you can see the issues across github are filtered down with the label first timers only and there are open source initiatives things like first timers only first contributors hacktoberfest and 24 pull requests and 100 days of code so do have a look at those they are a great initiative to encourage you to get into open source we've talked about contributing to open source but what about project maintainers wait a second before you get scared and say hey i'm new to open source i can't be a project maintainer yet i've barely contributed to open source everyone who's on github is not only a contributor is they are actually a maintainer so you are a maintainer as soon as you have that one repo on github that is public it might just be to customize your github profile but that is an open source repo that anyone else in the community could raise an issue raise a pull request make suggestions to you so you are actually already an open source maintainer and that's great because it's really good to practice the communication skills and the networking skills on the other side so let's talk about how you can get your project to stand out and you may think why would i want my project to stand out i'm a bit nervous the project isn't ready trust me your project will never be ready these open source projects are living projects they're having improvements done by you and the community all the time so project will never be ready and people really like joining a project in the early days because they can help guide the direction of the project imagine waking up to 10 12 pull requests people have made improvements to your project it's such an awesome feeling to have that to think wow people have actually spent their time and effort to make an improvement to my project which then becomes our project and you build a community around your project and you'll learn so much from it people will make suggestions you don't have to accept everything but just by having the conversation you will learn so much more around the technologies you're using in your project and libraries and frameworks that you might not even be aware of yet to make your project more inclusive and more enticing for people to get involved and contribute the first thing i recommend doing is going to the insights tab from the insights tab you have a set of tabs down the left hand side and then go to the community tab from here you can really see how you can make your project more inclusive does it have a description does it have a readme does it have a code of conduct does it have the right templates for issues and pull requests does it have a license and you can do this on other people's projects as well so it's actually a really good way to contribute contributing to your own project regularly is actually really useful it shows the github algorithm that your project is alive and all the stats on github also look healthy and people want to contribute to projects that are moving forward not projects that are dead or archived without having the archive flag on the repo so don't try and spend an entire weekend doing one giant commit to your project i highly recommend every day every few days doing small changes to your project therefore people can understand the changes that are happening do a commit for each value that you add to your own project and if there are people who are more junior than you who want to get involved in your project and even if you're new to tech this is really valuable those people with a fresh pair of eyes will actually improve your projects so much because they will show you and highlight what parts don't make sense for newcomers and they might make sense to you because you built the project to really embrace the feedback from the community and from people who are new to tech documentation is so important that might scare you might think i'm not going to write a whole book on my project because it's changing all the time documentation will get out of date you don't have to write a whole book having a readme that shows the goal of the project and has a quick start guide of how to get the project running locally so people can start making changes to your project and get involved having a screenshot in your readme is really helpful it's which straightaway shows the benefit of the project and if you can have it deployed somewhere so that people can go and have a play and check it out it's also really important you want to lower the barrier to entry so people can get involved in your project as easily and as quickly as possible automate everything as much as you can for day one you don't have to try and have a perfect automation pipeline but do start automating things from the beginning now with github actions it's really easy there are a few lines of yammer config to have github actions to run a linter on your project to run any checks that you want or any checks that you might do manually if you can automate these then when you do have the conversations and the pull requests with your community you're actually having the conversations about the more valuable part rather than about formatting or any of the simple checks that could be easily done with github actions another great tip i can give to you as a project maintainer is try to respond to people as soon as possible ideally within 12 hours and what i mean by that is if you haven't got time to review an issue or discuss it or to review a big pull request at least comment and say look i'm really busy with work i will try and reply this weekend but at least the person who started the discussion who raised the pull request knows that you believe in your project and you're just busy at the moment another great thing about being a maintainer when you're contributing to other projects you also realize that a lot of these projects are done on the side people don't do these as a full-time job so if you don't get a response straight away be patient they haven't forgotten it they've got the notification don't send them emails discord dms twitter dms with links to your issue or your progress they've got the notification if you don't hear back from them within a few days a week then yes by all means do reach out to them but don't spam them all within the first 10 minutes to help your project get discovered you need to be involved in other projects i don't just mean contributing code to other projects as i've been saying the whole way along through this video get involved in the conversation reply to an issue review someone's pull request and give your thoughts and feedback and when they see you getting involved in the communication they will go to your github profile and they'll have a look at what projects you have that's why it's also important to customize your github profile let's take a look at mine as you can see i've customized my github profile i'm changing this all the time and if you have any suggestions or any improvement raise an issue raise a pull request on my repository to customize your github profile all you need to do is create a repo with the same name as your username just like this go to the plus above and go to new repository and type in your username what you see on the left have the same on the right i've done that already so as you can see i've got this here and this readme is what appears on my github profile and in here you can put basic html and markdown and you can customize it regularly and often i do get contributions you can see i've got two pull requests waiting to get reviewed i really enjoy seeing people's ideas and suggestions for my customized github profile i actually do also enjoy contributing to other people's github profiles in addition to customizing your github profile don't forget to pin the repositories that you're most active on your github profile you can customize your pins up here and then you can select the repos that you want to be pinned you can select up to six open source and github is actually more about collaboration and communication rather than just code so it's important to get involved in the discussion because companies people hiring want to see how you communicate how you collaborate are you a team player do you work well with other people are you able to give constructive criticism to people in a friendly and encouraging way and are you also able to take constructive criticism and collaborate with people to work to a better solution if you want to get into open source you can up skill so you can learn faster you can network collaborate and improve your communication skills and so you can get the job and money that you deserve head over to my youtube channel i do videos and live streams helping you get into open source we also have a discord channel we also have a github organization if you'd like to join our github organization you can raise and issue our support repository asking to join the organization and we'll send you an invite this way you can get involved in the community straight away the best way to learn a spoken language is to go live in the country that speak the language that you want to learn so come and join our community and open source will be like second nature to you
Info
Channel: freeCodeCamp.org
Views: 122,957
Rating: 4.9634347 out of 5
Keywords:
Id: yzeVMecydCE
Channel Id: undefined
Length: 41min 53sec (2513 seconds)
Published: Wed Oct 07 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.