How you can also start with Open-Source?

How you can also start with Open-Source?

Introduction

Let us first see what is open-source?

Open-source is the software or code which is accessible to everyone on the Internet. It can be anything from software to use on your local machine to a platform or service which is used by millions of users online. The main ability open-source provides developers is that no matter how big or small the project is, still they can contribute to the project in their own way. They have the chance to contribute in many ways like:

  • Maintaining or editing the documentation.
  • Fixing a bug or an error.
  • Building an entirely new feature or service.

I would say that open-source is for everyone whether you are a beginner or an expert, anyone can contribute. There are almost all the technological domains available in open-source for you to involve in and be a part of something big. Even the community is very helpful and one can easily grab onto a project. You can find a lot of repositories on GitHub where you can be contributors and solve different issues. Open-Source allows people to connect with each other and collaboratively work on various solutions. If you have the right skills and knowledge, I would say you are ready to start with open-source. One can also earn a good stipend or some amazing swags.

Now how can you find repositories or projects to contribute?

Here, I will be taking the example of open-source programs and the ways to involve via them. So, I took part and completed this year's Girlscript Summer of Code 2021 and Hacktoberfest 2021 where I contributed to different repositories but also got to see different projects that people have been working on. They were very interesting and quite promising.

Now, the way I came across so many projects was through GitHub. Let us take the example of Hacktoberfest. You can go to GitHub and search the tag "hacktoberfest". A lot number of repositories will come up with that tag and those repositories are only valid for the Hacktoberfest challenge. You can choose anyone according to your field of interest and start working on it. Firstly, you should check the whole project and clear out your understanding about that project. Secondly, check out the contribution guidelines and what are the rules and procedures to contribute to that project. I would suggest you then go to the "Issues" tab where all the created issues related to that project are which are created by the maintainers or even by other contributors. Once you find an issue on which you are comfortable working, you can ask the person who created that issue to assign you that issue. Moreover, if you yourself find any issue then you can create a new one and solve it eventually.

For example, here you can see Issues, Pull requests, Tags, and Forks:

Screenshot 2021-10-29 135215.png

After forking, your own version of that repository is created:

0.png

The next step would be forking the repository which makes your own copy of that repository. Forking allows you to edit that repository independently and any change you do does not affect the main repository. "Clone" the forked repository to your local machine and start working in your IDE. After doing your changes and completing your contributions, you can commit and push the changes to your forked repository from your terminal itself.

  • Add your changes to be committed, git add .
  • Commit your changes with a message, git commit -m "your message here"
  • Push your changes, git push origin branch name

Now you want your changes to be merged into the main codebase so that those changes can be deployed. For that, you need to open a "pull request" in the appropriate format as per the contribution guidelines. Once you have created your pull request just wait for the maintainer to review and merge it.

Create your PR from here:

image.png

Congrats! you have finally made your first contribution to an open-source project.

I have also mentioned Girlscript Summer of Code, so if you don't know what it is, it is basically an open-source program where you have to register as a participant if you want to contribute or as a mentor if you want to help participants in their contributions. Mentors are here maintainers of different projects which they provide to participants which are mentioned on the website. Participants can choose to contribute to different projects as per their field of expertise. After choosing your project you just have to follow the same steps as mentioned above. GSSoC is not a stipend-based program but still, you have the opportunity to win additional prizes and perks if your rank is higher.

There are also some other major open-source programs which you should not miss: "Google Summer of Code" and "Outreachy" . You can also check "MLH Fellowship" which is an internship alternative for students. These top open-source programs offer participants quite a big stipend for their participation. The competition and difficulty level is very high as many big organizations and companies take part. Participants work on the projects ideas proposed by them for the duration of almost 3 months. These are some great opportunities for students to work on some amazing projects for such prestigious organizations, gain some skills and a lot of experience. You also get the opportunity to connect with many talented people.

Here is the list of almost all the open-source programs happening throughout the year: Click here.

Conclusion

In the end, open-source is for everyone and quite welcoming. There has also been a notion that only through these programs you can contribute to open-source projects but that's not the case. You can contribute to any OSS project anytime throughout the year and make your contribution to the community. There are no limitations just some regulations you need to follow. I would like to mention that one should not follow OSS for the money or swags but rather for collaborative learning, skillful experience, and positive impact. Do check out the list of OSS programs from the link above. Stay motivated and keep growing!

Connect

You can connect with me via GitHub and LinkedIn.