I know that you might be thinking🤔 that Is this blog really help you to start your open-source journey? So, I promise you that after reading this blog, you will definitely feel much confident to make your first open-source contribution.
I am sure that you might be hear about the term “open-source”. And you might be thinking What exactly is it? How can you contribute in it? What are the tech or tools need to know to do open source? How can you get started? So, you are at right place. In this blog, I will cover all this and much more.
1. What is an open source?
Open Source refers to the source code that is available for modification, enhancement and anyone can use freely. Open-source software is usually developed as a public collaboration and made freely available. Anyone can also contribute in the source code to make it better. GitHub is also an example of an open collaboration.
2. Why should you contribute in an open-source program?
This is the first question that arises in our mind that why should you contribute to open-source programs?
So, there are plenty of purposes such as :
• Learn new skills
• Share your knowledge
• Grow together and learn together
• Gain experience in Real-World Development
• Build your Networking with like-minded peoples
• Networking will help you to grow your career
• Know about the workflow of Git and GitHub
• Brushed up your skills
3. Who can Contribute? What do you need to participate in an open-source program?
If you are a beginner then most probably, these questions arise in your mind. And you might be thinking that, Are you eligible for this program or not? Well, the answer is Yes. You can contribute to open-source programs.
Well, For contributing to any open source program, you don’t need to have a deeper understanding of any tech. Just need to learn the basics of any tech according to your interest and make contributions.
Let's say, If you know only the basics of HTML and CSS, then you can contribute to any open source project of Web development. You can make changes in the UI of that project, change color or change the font style. These are very basics issues and you can easily contribute to them.
Tip-1 : I know, you are much excited to make your first open-source contribution, but before going through all these steps, I would recommend you to go through this Git Cheat Sheet and download it on your local PC so that you can review it in future.
4. How to get involved in an open-source program?
The first step is to register yourself for any beginner-friendly
open-source program.
There are some beginner-friendly open-source programs like :
• GirlScript Summer of Code(GSSOC)
• Lets Grow More Summer of Code(LGMSOC)
• Script Winter of Code(SWOC)
• Delta Winter of Code(DWOC)
• NJACK Winter of Code(NWOC)
• Kharagpur Winter of Code(KWOC)
Checkout this to know about more open-source programs and open-source competitions.
After enrolling yourself, I am pretty sure that you will get selected.
Tip-2 : Try to fill the application form carefully and write your answers properly, You will definitely get selected.
5. How to choose an open-source project?
This is a very crucial step. After getting selected, visit on the official website of that open-source program and Check projects according to your tech interest and convenience.
Within those projects, whenever you catch yourself thinking that something could be better or altered, act on your instinct.
And Make sure, your selected project will follow these things :
• The project must have a license
• It should be a recent project that means mentors and admin are active
• Make sure, people are contributing to that project
• There should be an active discussion on the project issue
• Check that mentors are reviewing pull requests of the participants
If all the above conditions are satisfied by the project then you should go for that project.
6. Create your first issue
• After selecting a project, open that project on GitHub
• And check what can you make changes so that this project becomes better?
• Now, after finding an issue on which you can work without any difficulty, visit that project on GitHub
.
• There will be a section of Issues
as shown in this image :
• Click here and you will find a option of New issue
• After clicking on New issue
, you will find some type of issue as shown in this image:
• You can choose any option according to your issue type.
• And Fill all the details of your issue and click on Submit new issue
button.
Congratulation!đź‘Ź Finally, you created your first issue.
Tip-3 : I would suggest that you should describe your issue properly and also mention that how will you solve this issue.
7. What can you do to get assigned that issue to you??
• After submitting your issue, Wait for 2-3 days and a mentor or admin will assign you to work on that issue.
• If you are not getting any response from a mentor then you can text them on the discord channel (most of the open-source programs make a discord channel).
• After that, I am pretty sure that you will get assigned and get a message on GitHub something like this :
Tip-4 : I would suggest you to text individually to the mentor on discord or any other platform like LinkedIn, So that they can notice your message and assign you.
8. How to start working on the project?
If you followed all the above steps, then you are good to go.🙌 So let's talk about how to actually start working on the project?
There are few steps such as :
(i) Fork the project : At the top right corner, you will see the term fork
. All you need to do is click it and you will have created a copy of the same project in your account.
(ii) Git SetUp : Now, first thing is need to set your Git environment so that you can work on that.
If you have Git installed then open CMD, but if you haven't then install it from here.
There are two steps to setup your git environment :
(a)Set your user : You need to set your user name because every git commit use this information. So use this command to set your user name :
$ git config --global user.name "Your_Name"
(b)Set your email address : Also you need to set your email address and for that use this command :
$ git config --global user.email <your_email@gmail.com>
Finally, you are done with the Git Setup. Now, You can work on that.
(iii) Initialize your Project as a Git Project: Before cloning the project, first thing is to initialize your repository as git repo. So for that, run this command:
$ git init
This command is used to create a new blank repository and to make an existing project as a Git project.
(iv) Clone the project : Now, You need to copy the link of that project, which will be available under the Code
option as shown :
So, now to clone the repository, use this command :
$ git clone <url>
This command will create a copy of the project on your local pc.
(v) Create a Branch: Before start working on the project, you need to create a branch. Run this command to create a branch:
$ git checkout -b <your_branch_name>
• As shown in the image, before creating the branch, we were in the master branch.
• After creating a branch, we will enter into our newly created branch
• We can also check all the branches present in the project by using this command:
$ git branch
• Now, you can see in the image that there are two branches in our project:
a. master branch: This will always be present in your project as default or main branch.
b. new branch: This is our newly created branch.
• We are in our newly created branch newbranch
that’s why it is shown in green color and now, you can write your code in that project.
Tip-5 : Try to run $ git status
command as much as possible to check the status of your project at any instant.
$ git status
9. Add and commit your changes:
After making the required changes in your code, you need to add and commit these changes to your project.
• To add your changes run this command :
$ git add -A
• Run this command to commit :
$ git commit -m "Your_commit_message"
This command is used to create a snapshot of the staged changes along a timeline of a Git project's history.
After running the $ git status
command, we can see in the image that the working tree is clean.
You can also use git log
command to check the history of commits that are made in the repository.
$ git log
After running the $ git log
command, you might be thinking that how to return back to your CMD. So, for that Press the q key to return to your command prompt.
Tip-6: Write your commit message properly. You can write about what you made changes in that repository?
Let's say you created an issue to make changes in a submit button. Then your commit message should be like :
$ git commit -m "Modification in submit button"
10. Push your project to the GitHub
Now, you need to push your project. The git push command is used to upload local repository content to a remote repository. Use this command for pushing your project :
$ git push origin <your_branch_name>
or
$ git push --set -upstream origin <your_branch_name>
Tip-7: You are doing great. Just try to explore more git commands. And if possible, you can take a print out of the CheatSheet
and paste it near your study table.
11. Create a pull request :
After pushing your project, visit on GitHub and there you will find a big green button of compare & pull request
as shown in the image :
Click on that and create a pull request in the given format of that project such as :
Tip-8 : You can also commit an additional message as shown in the image, so that mentor can review your pull request soon.
Congratulation!🤩 Finally, you created your first pull request. You should feel proud on yourself for making your first contribution to an open-source program.
Top comments (13)
A very nice article. Just a small note: You don't have to initialize a local git repo with
git init
if you plan later to clone from a remote repo withgit clone
. Cloning takes care of initializing a local folder a git repo first before downloading the remote repo contents.Thanks :)
Woww bro a damn well detailed guide would really help beginners like me🥰
Girl*
Glad to know that it helps you:)
I think an important part when choosing the project you contribute too is that you have to use the project yourself. If it means something to you, you will understand the problem better and... well it will be useful for you. Fix that bug that always annoyed you in an open source software you like.
Yes, choosing a project is really an important step. We need to take time to examine that project.
Made my first contribution in 1982 or 1983. A library of prime number related functions. Trust me there wasn't much like that avaiable at the time. I encourage everyone to contribute—either as a stand alone or as an adjunct to an existing project. If nothing else it means that something you are interested in is avaiable. Go for it!
Yes, Everyone should contribute in open source programs, Because we learn a lot of new things and also share our knowledge with others.
A very good guide indeed.
Thanks :)
Shared this on my twitter network, I think it can seem very daunting. Great work - twitter.com/MichaelCade1/status/14...
Thanks for sharing. I hope it will reach every needy person, who wants contribute in open source programs.