Contributing to an Apache project is the second step on your journey up the contributor ladder.
User → Contributor → Committer → PMC 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.