The Ops Community

Saar Ryan Cohen
Saar Ryan Cohen

Posted on • Originally published at memphis.dev

How to contribute to an open-source project

OSS

The best thing you can do to boost your skills

During my career as a software developer, I started getting involved in some open-source communities and being an active contributor, I never thought to myself that it will leverage my knowledge and experience to that level it did.

In the spirit of open-source, I co-founded Memphis.dev together with my 3 best friends from college - A message broker for developers made out of devs’ struggles with using message brokers, building complex data/event-driven apps, and troubleshooting them.

What is an open-source software/project?

Open-source software (OSS) is software whose source code in some shape is open to the public, making it available for use, modification, and distribution with its original rights. Programmers who have access to source code can change the code by adding features to the project or software, changing it, or fixing parts that aren’t working properly. OSS typically includes a license (Apache, BSD, MIT, GNU) that describes what are the constraints around the project and how “flexible” is the project.
Read more about it in Snyk's article.

Where to find interesting open-source projects to contribute?

So usually OSS contributors start to contribute to projects they are making use of. For example, a developer who works with Redis finds it interesting to go deep into Redis internals, understand what’s going under the hood, fix bugs, or add new features.

For developers without any former experience working with open-source products, My personal suggestion would be to go over the CNCF projects page. CNCF is the foundation of cloud-native, open-source projects. Among the backed projects you can find Kubernetes, Prometheus, and much more. It is a really good place to find some interesting projects to start contributing to.

The contribution process

  1. Find a nice project for example Redis, NATS, Memphis{dev}
  2. Get connected with the project’s community (Slack channels, Discord, website, GitHub repo, etc.)
  3. Search for contribution guidelines. Often a file located within the project's main repo called CONTRIBUTING.md
  4. Fork the GitHub repository — Create a copy of the entire repo on your GitHub account
  5. Creating a separate branch from the main branch
  6. Code your changes (bug fixes, new features, etc.)
  7. Push your changes
  8. Create a pull request of your branch to the upstream repo
  9. Get your PR reviewed by one of the repo maintainers (Usually happens automatically)
  10. Fix issues and comments left by the maintainer
  11. Awaiting your code to be merged
  12. Celebrate your first contribution with some cold beer :-)

Originally posted on Memphis{dev} blog

Special thanks to Idan Asulin for this amazing article!

Discussion (5)

Collapse
dejanualex profile image
Alexandru Dejanu

Personally I don't see how "For developers without any former experience working with open-source products" can contribute directly to rather complex projects as CNCF.

Collapse
idanasulin1 profile image
Idan Asulin

I know it sounds like you must to be a pro before you’ll have the ability to contribute code to such projects. But let’s remember that every giant project has also simple bugs tagged by the maintainers as a “good first issue”. Those issues are usually very simple and supposed to make your first contribution as smooth as possible

Collapse
johnson_brad profile image
Brad Johnson

It takes bravery to open a PR for something that may seem trivial, but as someone who's managed open source communities I'm (almost as) appreciative when a newbie creates a PR that fixes a typo as when a grizzled veteran fixes a bug.

Collapse
idanasulin1 profile image
Idan Asulin

Thanks for sharing

Collapse
saar_ryan profile image
Saar Ryan Cohen Author

thanks for writing :)