What is Open-Source?🤔
A source that is open to all!
A project that is publicly accessible with its source code, open-source software allows developers to collaborate, share ideas, and modify existing functions. This fosters innovation and encourages a sense of community among developers.🚀👩💻👨💻
Let me break 🔪 down a little more.
Imagine you have developed a cool gaming application for the sake of a college project or anything can be the reason. Now one of your developer friends found a bug on it and they want to fix it and you are open to collaborate. Then?
Here the term open-source comes in. You just have to make your project available to everyone on platforms like GitHub and GitLab.
Many software is open source that you are using in your day-to-day life to which you can contribute. Example
Twitter Algorithm🐥
Mozilla Mobile♨️
and many more...
Note: Pre-requisites to start with open-source are the basics of Git & Github.
How to make your project open-source?🛠️
This depends upon our project scale level.
If you build a project for your personal use, you can simply push it on Github or Gitlab platforms.
To do this, you must know the basics of the Git version control system and you are ready to go.
If you made a project that should be used by others then you must have these things:
An open-source license for your projects like MIT license, Apache license and GNU General Public license.
Publishing the source code in a public repository on Github or Gitlab.
Provide a clear and brief README.md file to make it easier for the contributors.
A proper guideline that you want to be followed by the contributors👩💻📚
Apart from all these, keep your project updated by reviewing the pull requests or any issues created by others.
How to find an open-source project for your tech stack?🔍
Finding a project which matches your skill can be overwhelming if you are a very beginner. I can feel you!🥲
In my opinion, there can be majorly two ways:
Join the Community👥
To contribute to a project you must join their community. Joining the communities plays a vital role which helps you to get in touch directly with the maintainors and also break down the issue which you wish to work on.
You can find them on Twitter, Discord, and Slack social platforms.
Always introduceyourself by describing what you are learning and currently working on so that other folks can know and interact with you.
Manually Search🕵️
Or you can directly search on the platforms like GitHub.
Now, type a keyword of your tech stack, also you can filter it by choosing languages you are familiar with.
I know, you're thinking "What next?"
After successfully hunting the project, you need to learn how to do an actual contribution. So let's jump into that.🦘
How to make your first contribution?🌱
Let's make your first contribution now! 💪
Yes, like right now!🤯 Follow the steps with me:
Open the EddieHub organization by clicking here 👉https://github.com/EddieHubCommunity or directly go to the repository below.👇
%[github.com/EddieHubCommunity/hacktoberfest-..
In this repo, we just have to add our name and GitHubprofile URL to the list as a contribution.
Now it's very important to go through the README.md section and follow the guidelines in order to start contributing.
The first thing to do is to fork the repository so that you can add your changes to the project.
By clicking on the
Fork
button will land you on this page.In the owner's section select your user account. If you are not a member/owner of any other organization then it will automatically fill yours as it's doing above.
Also, it will automatically give the repository name.
Followed by this, click on the
Create Fork
button.After that, the page will open up to the repository which we have just created.
It will look like this. In this, we have now
user-name/repo-name
in the top left corner.The first thing you have to do now is to click on the
Synk fork
button to keep every change up to date.From here we can do two things. First, is to clone the project by clicking on the
Code
button followed by the green color in your favorite editor and then perform changes.And the 2nd thing is to make changes directly on the GitHub UI which we will be doing in this learning. Although it is not recommended to do so for big projects, but this one is specifically made for demo purpose contribution so that anyone can learn easily.
Now on the left corner, there is a grey button called
main
which indicates that currently you are in the mainbranch. And for best practices, it is recommended to make changes always in a new branch.So on the drop-down section give the name of the branch as per your choice, basically depends on what changes you're doing so we will give here
nameAdd
as the new branch name. And then click on theCreate branch: nameAdd
.The page will look like this in which you are seeing your newly created branch. Now click on the
README.md
file to proceed further.Now click on that pencil icon to start editing the file and make sure you are on the
nameAdd
branchNow add your name to the list according to the naming convention and add your GitHub profile URL.
If you are not sure about the URL then copy-paste the above URL of any till https://github.com/ and after that check your username above at the left corner and put that onwards.
Now click on the
Commit changes
button but before doing that re-check your changes.Check the commit message and the branch and click again on the
Commit changes
button.Now the pull request page opens up automatically but sometimes it doesn't appear rarely. So go to the pull requests section and click on the
New pull request
button.If by default it is showing the
main
branch then change it to the branch where we have made our changes.Now check carefully the branches starting with the
base repository
to thebase: main
branch where the changes going to be reflected going towards thehead repository
which is ours in this case followed by thebranch
we made.You can also see your changes once again so that you can re-check them by scrolling down.
Now it's time to click on the
Create pull request
button. On clicking that this page opens up, again click on theCreate pull request
button.And that's it. You can add a comment of your choice or just remove those lines into the comment block.
Congratulations!🥳 You have made a contribution. Now wait until your PR gets merged.🎉
My first open-source contribution👶
The first merged pull request is always special to everyone. Checkout mine!
In this PR I have created my profile in LinkFree you can check and also you can create your own. This is an awesome project built by EddieHubCommunity where all your links compact into one link. You can add your Twitter, LinkedIn, GitHub, Discord, Blogs or Instagram profile link, whatever you want to add.
You can check my other contributions too here:
I don't have any big contribution yet. I am still learning and exploring.
Perks Of Open-Source🎁
There are a lot of hidden perks of doing open-source. Let's see a few of them.
Developing your skills🌟
By doing open source consistently, you're improving the coding/non-coding skills of your particular stack.
Career Growth💼
You don't have to find a job now, the jobs will find you!
As it is open-source, everyone including the organizers is watching you, your hard work and your constant contributions which you are showcasing directly/indirectly.
Helping the Community🤝
Your contributions are not only just about your growth, it's the community that is growing with your support.
Networking🌐
No matter if you started alone, there will be amazing folks who will reach out to you to network, to collaborate, which will make a strong connection within the community.
Conclusion🏁
In conclusion, open-source projects offer numerous benefits, including skill development, career growth, community support, and networking opportunities. By contributing to and collaborating on these projects, developers can enhance their technical knowledge and establish valuable connections within the community. Open-source contributions not only benefit individual developers but also foster innovation, collaboration, and growth for the entire community.
Thank you!🖤
Poonam Pawar — LinkedIn