The Apache Software Foundation
Community > Code
This page is for people who are reasonably comfortable with open source development models but need a helping hand finding their way around the Apache Software Foundation and our way of developing software (commonly called “The Apache Way”). For those wishing to start from the very beginning, we have a newcomers page.
Project Independence And Policies
While not all ASF projects practice all aspects of the Apache Way in the same way, there are a number of rules that Apache projects must follow – things like complying with PMC release voting, legal policy, brand policy, using mailing lists, etc., which are documented in various places.
One of these invariant rules is that projects are managed independently of any commercial interests. The goal is to create an environment in which all participants are equal and thus have an equal opportunity to contribute to and benefit from our software, regardless of motivation or financial objectives. This is discussed in more detail in our document Project Independence.
Moving From Contributor to Committer
Anyone can be a contributor to an Apache project. Being a contributor simply means that you take an interest in the project and contribute in some way, ranging from asking sensible questions (which document the project and provide feedback to developers) through to providing new features as code patches.
If you become a valuable contributor to the project, the Project Management Committee (PMC) may invite you to become a committer. At the ASF, a committer is someone who is committed to a particular project. It brings with it the privilege of write access to the project repository and resources. In many projects, committers may also be invited to be part of the core group within the project that ensures the project’s vitality, the PMC. In a few projects only a subset of committers who have earned even more merit are invited to be a part of the PMC.
One thing that is sometimes hard to understand, when you are new to the open development process used at the ASF, is that we value the community more than the code. A strong and healthy community will be respectful and be a fun and rewarding place. More importantly, a diverse and healthy community can continue to support the code over the longer term, even as individual contributors come and go from the field.
In particular, we have some etiquette and behavior expectations when you work with Apache communities.
Contributing A Project - CoPDoC
The foundations of an Apache project and how the community contributes to it are sometimes referred to by the acronym CoPDoC:
- (Co)mmunity - one must interact with others, and share vision and knowledge
- (P)roject - a clear vision and consensus are needed
- (Do)cumentation - without it, the stuff remains only in the minds of the authors
- (C)ode - discussion goes nowhere without code
Anyone Can Become A Committer
There is nothing at the Apache Software Foundation that says you must write code in order to be a committer. Anyone who is supportive of the community and works in any of the CoPDoC areas is a likely candidate for committership.
Apache strives to be meritocratic. That is, once someone has contributed sufficiently to any area of CoPDoC they can be voted in as a committer. Being a committer does not necessarily mean you commit code; it means you are committed to the project and are productively contributing to its success.
One of the key contributions people can make to the community is through the support of a wide user base by assisting users on the user list, writing user-oriented docs and ensuring the developers understand the user viewpoint. A main idea behind being a committer is the ability to be a mentor and to work cooperatively with your peers.
Some users of a project’s software become committers in their own right. Some will test code, some will write documentation, some will do bug triage and some will write code.
Questions and Feedback
You can provide feedback and ask questions by subscribing to our mailing list: send an email to firstname.lastname@example.org. Once subscribed, you can send your mail to email@example.com.