Open Source is not just about Code Contributions or Documentation, it can be helping the community with organizing workshops/conferences, managing a Repository, reviewing code or documentation, answering questions about the project on Stack flow or Reddit, in open issues, or helping moderate the discussion boards or conversation channels.
In this blog, we'll talk about Code contributions.🔨
Contribution to open source might seem a little tedious, and all these terms Pull Request, Merging, Forking sky-rocket your anxiety 📈 which is normal we all have been through that! 😆
As a beginner you might have a lot of Questions 🤔:
I know a language, I want to start contributing to open source but where do I get started from? where do I find projects? how long does it take to find a project? Do I need to know EVERY git command? Do I have to be an expert?
We'll answer all the possible questions in a while.
First of all a little about what is Open-Source Software. In short a software whose source code is public, making it easier for anyone to make modifications and use it with its original rights.
That being said, I welcome to my first ever tech blog 😆
How to find Projects 🤓
You can use the Google Summer of Code website to find projects. Go to the organization tab and filter out the projects on basis of What language you want to contribute in. Click on the View Idealist and Join the mailing list/slack channels for any help related to the project.
If you have a particular project in your head, you can directly use Github to find it.
How to Find Issues 🕵🏽♀️
No one knows the entire codebase of a particular project, and it's completely fine to feel overwhelmed seeing the entire thing. Let's talk about how you can find an issue to get started with contributing.
Click on labels on the top right and search for good-first-issues. These issues are easier to get started with
What's a README .md 📄
Every project has a README. md.The markdown file contains all the details of the project, the code of conduct, and how to set the project on your local system. Sometimes the projects have a separate file CONTRIBUTION. md which has the details about how to set the project on your local system separate from the README. md
Getting an issue assigned 🖊
Most of the time the issues are open for all but sometimes you need to get an issue assigned to yourself before starting to work on It.
Sometimes you might see the issue has been assigned to someone already, but they are not working on it, in that case, you can just ask the maintainer to assign it to you.
"@ person_assigned hey are you working on the issue? if not @ maintainer can you please assign the issue to me, I would love to work on this issue?"
Fork, Clone and Commit 🍴
Forking in simple words means making a copy of a project on your account. Changes made on a project on your account will make no changes to the original project.
Cloning is setting up the project on your local system. You can say you are downloading all the files in the projects on your system. Now you can delete files, add files, make changes to a specific file or folder it will all work without affecting the original project.
Make the necessary changes and commit the changes!🔨
(learn about the basic git commands such as git add, git commit, git clone, and git init before starting with open-source)
Push and Make a Pull Request 🤝🏽
Push as the term suggest, is pushing the changes to your repository.
Pull a Request is an event where you ask the maintainer of the project to merge the changes you made.
When you make a Pull Request the maintainer of the project will review the changes and merge it to the main branch! ⚡
"Collaboration 1st, Code 2nd!" - Eddie Jaoude
Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine. Get started today!
My first blog is pretty long 😅, thank you so much if you made it here!🙌
Drop a Like and Comment to help me with the Algorithm **😆🤝🏽
🚩If you haven't contributed to open source yet, get hands-on practice by contributing to my repository where all you need to do is add your name, Twitter username, and Github username 👇🏽