The Journey of Contributing to Open Source

The Journey of Contributing to Open Source

What do you need to know? And how did I start...?

ยท

4 min read

What is open source??

This has many definitions, but to me, it is a codebase that is open for the public to view or modify for improvement.

The term open source refers to something people can modify and share because its design is publicly accessible. source

You are probably using one of these open source software without realizing. Most of them are usually free and maybe with some paid plans for certain features. You also probably think, if the source code is open to everyone for view, they may be vulnerable to malicious threats? Truthfully, they are less likely to get malware threats. Everyone can read/review the codebase, and they can inform one of the maintainers that there are issues in their codebase/documentation, and then the maintainers can improve the code/documentation.

List of open source software:

  • VLC, a media player
  • shareX, a tool allows you to take screenshot, create GIF, etc
  • Linux, an operating system
  • Blender, a 3D computer graphics software
  • GIMP, a graphics editor
  • so on...

But why you should contribute to open source? It depends on what are your goals or reasons for this? I will let you define your goals or reasons. ๐Ÿ˜‰

There is a Chinese saying ไธ‰ๅ€‹่‡ญ็šฎๅŒ ,่ณฝ้Ž่ซธ่‘›ไบฎ. In English, it is Many heads are better than one. Many products not limited to software are not managing by one person, and they are managing by teams of engineers, project leaders, managers, etc.

It is possible that you think of something that you never thought before, like your light bulb is on moment.

What do you need to know before you start?

It boils down to what area you are trying to contribute to. However, in general, you should at least know git for version control system and GitHub for fork, pull request, etc. Keep in mind, you don't need to be a pro of git and GitHub.

Also, you should read documentations like README, contribution, etc first. Certain repos may have specific requirement for you to start contributing. Or an instruction that you need to know on how to run the project locally.

Be sure, start with a small thing like fix typo, and then build your way up to bigger thing!

Resources to start:

Note: EddieHub Link is in the video description.

My journey

My first pull request was on July 8th, 2021. It is less than a month away until it becomes a year ago officially! You can go firstpr.me to find out your first pull request! image.png

I started with Zero to Mastery for the pull request, but I didn't continue because I was not really familiar with the open source world. Until I found EddieHub somehow, I can't remember how. I watched the video How to contribute to open source within 10 minutes (the link is above). From there, I started looking for a way to find good first issue on GitHub. I found out that you can start with this search parameter is:open no:assignee label:"good first issue" on GitHub's issues tab, and then search through issues and find a couple of them that you are interested in working on. If you find the issue is not clear, be sure to leave a comment and ask!

image.png

Opening pull request is not an only way to do this. You see typo on docs? Or you feel it can be improved? Go to the repo, and let the maintainers know by raise an issue to explain 3Ws (why, what, and how). Always be more specific on the issue and included as much as details you can.

One of my favorite contributions, I raised an issue on powerToy's FancyZone to let the maintainers know that their doc is not clear. You can check it out here. The change had been made!

I keep my contribution log in this collection on Polywork.

What do I gain from this?

The journey on this is still in the beginner stage. My experience so far has been very positive. As I mentioned before, a product is always managing by a team of people.

By contributing to open source, you get to:

  • Collaborate with others (e.g. maintainers or contributors or etc)
  • Communicate with others
  • Improve their codebase/docs
  • Work with git and GitHub more
  • Have fun!
  • Something you would like to add?

Thank you!

Thank you for your time and reading this! Feel free to share your open source experience or first pull request in the comment below, and follow me on @viktoriacheng15

Did you find this article valuable?

Support Victoria by becoming a sponsor. Any amount is appreciated!

ย