I have contributed several PR and submitted several issues for open source projects. I still remember the excitement when the first PR was merged a few years ago and experienced the fun of participating in open source. However, I only stayed in the contributor stage, and there was no follow-up, because the author stopped doing research and development later and thought that if he was not familiar with the code and could not fix bugs, he would have no chance to contribute.

There is a misconception here that contributing code and fixing bugs is not the only way to contribute to a project. Can you only become a contributor by contributing code? If I can’t write code and am not a developer, how can I become a contributor to an open source project, or even a committer?

After sorting through, I found that there are many ways to share with everyone, whether developers or not, can practice. (I am also on the way to practice)

Non-code mode

Write an article

Writing articles is an easily overlooked way to promote a technology. For example, writing a hands-on guide for a project, logging a pit, analyzing the architecture, implementing principles, and so on.

If it is difficult to write an article, you can start with translation. Whatever is meaningful to this project, you are making contributions to it.

Or you can watch others’ technical practice sharing, organize others’ sharing into text version, share in the community, help more people know about the project.

I have also noticed that some contributors have organized their articles into a development booklet or a professional book that systematically introduces others to a particular technology.

Making video

Making videos is also a good way to do this. We can convert text to video to introduce an open source project, record how-to instructions, potholes, architecture analysis, implementation principles, and so on. The author has also seen many projects introduced by video, which may be in the form of animation or real person explanation. In either case, the presentation of video is more vivid and interesting than words.

However, the workload of video editing may be relatively large for novices.

The conference to share

If you’re not shy and like to share, it’s also a good idea to talk about open source projects at tech conferences. This may be difficult for beginners to understand the project, but over time, sharing becomes easier as we move from being a beginner to a familiar. Sharing can exercise my ability of expression, logical thinking, and courage.

Perfect the documents

Most developers don’t like documentation, but documentation is an important way for others to learn about a project and get started on it. In my previous development experience, I felt very lucky if I came across a clear and detailed document, and started the project much faster. Documentation is not limited to startup instructions, but architectural design and principles would be great.

We can submit documentation for open source projects of interest, or even fix documentation, such as:

  • Code is updated, documentation is not synchronized
  • Fix bad download links, document links
  • Optimize the document and modify the description of the document to make it easier to understand
  • Submit documents describing architecture design and principles

Build local community, organize/participate in activities

If you’re interested in a project, get involved in your local community, meet like-minded people, organize local events, and contribute to the development of the project.

If you don’t have a local community, you can build a local community as a sponsor. I read that the Apache Software Foundation encourages Local communities, such as ALC Beijing. Other tech communities like KubeSphere and Cloud Native are actively developing local communities.

Participate actively in community discussions

Active in Apache Mail List

Apache culture encourages discussion and decision making through mailing lists, and keeps a record of everything. Each Apache project has its own mailing list, and if you have any ideas about the project, the community is very encouraged to discuss them on the mailing list.

We can:

  • Vote for the project release
  • Respond to discussions initiated by others and express your own opinion
  • Start a discussion

Why mailing lists?

The mailing list feels very old to me. I went to learn about the development history of Apache Software Foundation. At the beginning, the founder of the Foundation discussed problems through the mailing list.

Despite the rapid development of the Internet, there are still difficulties in receiving pictures and using other software in the world. Although wechat and Twitter, which we are familiar with, do not cover the whole world, email can establish contact with others in a way of minimum threshold and ensure that people all over the world can participate in community discussion. This is why the Apache Software Foundation keeps mailing lists.

Active in making

Github is the most frequented site for developers, hosting most open source projects. I can work under the projects I am interested in

  • Make an issue of my ideas and the direction of improvement of the project
  • Submit a bug report
  • Review the PR submitted by other partners

These are all ways to contribute to open source projects.

Apache mail list vs Github

Why use mailing lists when you have Github? The code is hosted on Github, so it looks like the community’s collaborative work is done on Github?

Discuss issues on a mailing list, and if no one raises an objection, tacitly approve the proposal for everyone. If there are objections, they will be fully discussed and eventually reached a consensus or shelved.

The use of mailing lists is a nod to Apache culture. For projects that follow Apache’s rules, mailing lists are the community’s primary focus, and Github is a handy collaboration tool.

Code way

Contribute features and fix bugs

Of course, open source projects can’t live without code. If you are familiar with the stack of open source projects, you will soon be able to get started and contribute code. It is easy to work with your community partners to improve related features, fix bugs, keep contributing, become a contributor on the project, and be nominated as a Committer or PMC. Most contributors become committers by submitting code, but for people like me who are not familiar with code, this is not the case.

It should be noted that committers are the recognition of contributors’ past contributions. Committers will not be removed because they will not contribute in the future, nor will they have greater rights because they are committers. Everyone in the community is equal.

conclusion

This article covers many ways to contribute to open source projects. If you are interested in open source projects but not familiar with code, and want to participate in the open source community, it is a good way to write articles, make videos, share, build local communities, and actively participate in community discussions.