Contributing to an Apache project is the second step on your journey up the contributor ladder.

User → ContributorCommitterPMC member

While we often think of contributions to open source as code, a contribution can be anything - good questions, documentation, design, event coordination, and so on also qualify as contributions. Projects need your skills, even if you’re not a programmer.

But, it can sometimes be hard to know where to get started. We’re here to help. Here’s some of the basics.

What projects can I contribute to?

Most contributors start as users, and then see something that they want to improve, fix, or otherwise help out with.

There’s a lot of projects. You can look through them by name, by topic, or by programming language.

Where is everything?

Every Apache project website should have an /about page (or similar) that lists the basic “where is everything” about the project. If they don’t, here’s where to start looking:

Download

Most (not all) Apache projects will have a prominent download link on the front page of their project website. This will (hopefully) be accompanied by instructions on how to download, build, install, and use the releases.

Getting to know how to use the software that a project releases is a reasonable first step towards contributing. Keep notes of that first user experience, as that is valuable information for the project, and might be a good place to start your contributions.

The Code

Most (not all) Apache projects have their code on GitHub. Search for the project name in the apache GitHub organization.

Communication

Most (not all) Apache project have their main discussions on mailing lists. Most projects have users@project.apache.org and dev@project.apache.org mailing lists, focused, respectively, on end-user questions, and development activity. You can read the archives (i.e., messages from the past), as well as participate in current discussions, either by subscribing to the lists, or by using the lists.apache.org site directly.

Subscribe

To subscribe (that is, to receive every message sent to the list via email) to a project mailing list (e.g., if you want to subscribe to the users list for PROJECT) send a blank email message to users-subscribe@PROJECT.apache.org. Substitute the name of the list (i.e., dev instead of users), and of the specific project you’re interested in (i.e., karaf instead of PROJECT).

Unsubscribe

To unsubscribe, the process is similar. Send a blank email message to users-unsubscribe@PROJECT.apache.org from the email address with which you subscribed.

In each case, you’ll receive a confirmation email, with further instructions.

Other communication channels

Some projects use other communication channels, such as Slack, Discord, or WeChat. This will (hopefully) be listed on the project page.

Your First Contribution

Most first contributions are simple, as you become familiar with the project and its specific contributor flow.

We recommend that you start by finding, and joining, the relevant communication channel. Introduce yourself, and say what you’re interested in working on. How people respond to this can be a good indicator of how welcoming the project is. It will also be an opportunity for them to point you to good first issues, or other possible things to work on.

Your beginner’s impression of the project, and the development process, can be very valuable to projects attempting to improve their onboarding experience, so take notes of the things that were hard to find, or processes that you found confusing.

Becoming a Committer

Any contributor can, eventually, become a committer. While the exact process, and the specific milestones you may need to achieve, will vary from one project to another, the basics are fairly consistent across the ASF.

Ideally, once someone has contributed consistently, and of a consistently high quality, to a project, they will get invited to become a committer, which grants a higher level of ownership of the project.

Being a committer does not necessarily mean you commit code, although that is the historical reason that we use this particular word. It means you are committed to the project and are productively contributing to its success.

We’ve written a guide on how to become an Apache committer which covers the basics. As you become more familiar with a specific project, though, you’ll see that each project has its own slightly different culture.

In general, we have some etiquette and behavior expectations when you work with ASF communities.

For more details see “How it works”. You can also make suggestions for how to update this website you’re reading right now!

Questions and Feedback

If you have other questions, the ComDev team he here to help.

You can provide feedback and ask questions by subscribing to our mailing list: send an email to dev-subscribe@community.apache.org. Once subscribed, you can send email to dev@community.apache.org, or through the lists.apache.org web interface.