Taking the First Step at Open-Source Contribution

Explore five approaches to help you contribute to an open-source project for the first time.

이 포스트 한글로 읽기

Introduction

Before I get involved in open source in the past, I thought only code patches existed in open source contributions. Code contribution to a particular field requires a lot of background knowledge, and at that time it was quite scary to me since I was just one of the open-source newbies. It was very difficult to have a lot of knowledge like a maintainer, and it took a long time, so it seemed unrealistic that I can contribute to an open-source.

Despite this situation, with a passion for being a part of the open-source community, I began to look for ways to contribute to the OSS projects. Soon enough, I learned that there are many different ways to contribute such as bug fix, typo correction, documentation, and review, etc. After learning this, it didn’t seem that impossible, so I started my first contribution with the goal of fixing the error I was experiencing at that time.

The error was related to the interactive tutorial within “kubernetes.io”, which was explaining the process of deploying an app to the Kubernetes cluster. The tutorial code example with this tutorial was out of date, and the error with this code kept me from going further. The problem shown by the error was so clear that it was not difficult to fix this problem. After solving this error, I sent bug-fix PR to the kubernetes/website and my suggestion had been reflected to the repo!

This experience made me be fascinated by the open-source culture, and since then, I have been mainly working on Kubernetes L10n(localization) as an approver in the ‘sig-docs-ko-owners’ group. In this article, I’d like to introduce and describe the five approaches I’ve tried to contribute to an open-source project.

1st: Read Through the Source (Code)

This approach is a starter for beginners. It has been started from my thought that “There is no such thing as perfect, so there will be an answer in the source code”.

In this case, I started to read any type of source(document) on the Kubernetes/website, and within this process, I found a bunch of typos in the original document and sent PR.

k8s/website #18393

It was a small part, but it was a contribution that could improve the completeness of the document. And also, some of them received a `Great Catch!` from the maintainer.

The very first and easiest way to a contribution is to read through the source of the project. By this process, you’ll find several contributions, including hard coding, code style correction, and typo. It may be difficult to start analyzing the code, but simply opening and reading code is the easiest way to achieve your goal.

2nd Approach: Solving Issues

You may not be the one who knows deeply about the project. But still, there can be a point where you can contribute.

There are various issues in the kubernetes/website project that I mainly contribute to.

kubernetes/website issues

By navigating through the issues, I discovered an issue that I could do among them. At the moment that I found this one, I immediately requested the assignment and started the contribution. This issue was about translating the cheatsheet into Korean, and I was able to send a PR pretty easily.

Browsing through the issue tracker can help you find an issue that can be solved, and by sending a PR to that issue, you can contribute to an open-source.

Also, there is an issue with a good first issue label, which was added by the open-source ecosystem members to encourage beginners to contribute.

kubernetes/website good first issue

These issues are generally not difficult and consist of problems that beginners can easily solve. Therefore, you can try this approach too.

3rd Approach: Reviews

Many people may think that reviewing is not a contribution, but reviewing PR or Issues posted by other contributors can also be a contribution.

kubernetes/website #10485 review

In this case, you may have a question like “I’m not even a maintainer, can I review it?”. You may be worried about it, but an open-source project develops into a better project when various people’s opinions are reflected, so don’t hesitate to review other’s code and PR.

4th Approach: Contribute Documentation

Document contributions, which take a large part within the total number of open-source contributions, are always open! You can find numerous places to contribute, such as, documenting features that are undocumented features (this happens quite often), or by localizing English documents into Korean and correcting incorrect document content.

kubernetes/website #28647

5th Approach: Add a New Issue

The fifth approach is contributing with an issue when you found a problem but you can’t solve it or when you’re not in a situation where you can solve it(e.g. lack of test environment). For example, you might find a bug that doesn’t work properly and you don’t know how to fix it, or you may want certain features, but it may be difficult to implement. Also, you could enhance the documentation for clarification, and there might be a typo in the code. With these situations, you could leave an issue to the issue tracker and make open-source better.

kubernetes/website #9050

Conclusion

When I first started to get involved in this open-source world, I was at a loss on how to start. But soon enough, I was able to continue it with a little interest in open-source by doing contributions in various ways. If you’re having trouble like me in the past, I hope these five approaches might help you with starting an open-source contribution.

This article is originally published by myself here.

I love self-development and I primarily write about solving problems about computer engineering and personal stories.