Great overview, Rob. The roles at Apache projects are also documented
here, which may be useful to read as well:
http://www.apache.org/foundation/how-it-works.html#roles
Does anyone have links or an explanation of the "org chart" of the
OpenOffice.org project? It would be helpful for us Apache folk to have
a better understanding of how some things were done in the past on the
previous project.
On 6/24/2011 9:48 AM, Rob Weir wrote:
Since almost all of us are new to Apache we're learning a lot about
how Apache projects organize themselves. Based on my reading, I
understand that Apache projects have three degrees of participation:
Plus users! All Apache projects have a users@/user@ mailing list where
user level questions are asked and answered. Given OOo's focus, I
imagine we may have a number of lists or forums for this kind of support
in the future. Note that Apache prefers mailing lists (with public
archives in a number of places) to forums, although this is not a strict
rule.
1) Developer (or Contributor might be the preferred term, since it
doesn't depend on coding), who is a project member that contributes
patches, helps with support, reports bugs, etc. The main thing they
cannot do is commit changes directly to the product repository. They
need to submit patches, which are then reviewed and checked in by a
"committer".
Given the breadth of OOo, I think there may be a significant number of
people who serve as contributors, working on documentation,
translations, and user-focused areas.
2) Committers are elected based on their sustained contributions to
the project. They have an apache userid and email alias. They can
commit changes to the repository. They are also responsible for
reviewing patches submitted by other contributors. A Committer must
have an ICLA on file.
Committers are elected (by the PMC) based on the merit of their public
contributions to the project itself. Each PMC has it's own bar, or
level of contribution, expected from developers before being proposed
and voted in as committers.
Note that iCLAs are required for all committers, which ensures clean IP
for any project(s) they commit to. Committer access is granted
separately for every project; merit from one project is not necessarily
transferrable to other projects.
3) Project Management Committee (PMC) are Committers or Contributors
who are elected, based on merit, to help provide oversight to the
project. They approve releases and elected new Committers and PMC
members.
PMC members are almost always existing committers, since it's rare to
elect someone to control the strategic direction of a project unless
they've already been a committer for a while - but it's certainly
possible. Note that we probably would want an iCLA in any case.
As the Apache OpenOffice podling was bootstrapped, all of the
volunteers who signed up on the wiki, before the vote, were
automatically able to become Commtters and PPMC members. But to
actually take on those roles, a number of steps needed to occur,
mainly dependent on the new member submitting the Apache ICLA. Once
that is done, account creation, etc. takes some time, but is routine.
What we need to decide going forward is how we define the details of
the Contributor/Committer/PPMC roles.
Specifically:
1) In the future, will all Committers be PPMC members? In other
words, will these two groups be identical? I've heard that other
Apache projects have a subset of Committers serve on the PMC, but they
rotate membership, so all Committers get a chance to be on the PMC.
Given the breadth of work on OOo, I would imagine PPMC would be a subset
of committers, although that's a decision up to the project. I don't
know of many (any?) projects that rotate PMC membership; normally once
people are elected to the PMC they remain on it (until they choose to
leave due to not having time to contribute).
PPMC/PMC membership changes work like this:
- PMC votes to elect a new member
- PMC chair emails board@ with vote result asking for an ACK
- A director replies to the email with an ACK, and notes a 72 hour
waiting period
- After 72 hours, the PMC chair adds the new PMC member to the official
PMC roster
Note that changing the chair of a PMC (who is also a Vice President of
the ASF) requires a board resolution, which is done at monthly board
meetings.
2) If the Committer and PPMC groups are not identical, then what
criteria should we use to determine who becomes a PPMC member?
Committers can manipulate/vote on the code. PPMC members vote on new
committers, new PPMC members, and project releases.
Personally, I view committers as people trusted to help work on the
code. PPMC/PMC members are people trusted to *actively* plan the
strategy for the project, and who are somehow willing to help out on the
larger scale, either with testing and voting on releases, being
responsible for some product area, or whatever. But again, that's up to
the project to decide as a community.
3) If someone is offered the role of Committer, how long do they have
to sign ICLA?
Up to the project, but if they don't sign an iCLA then infrastructure
won't give them an Apache id.
4) If someone is an incredible contributor to the project, say in
testing or event planning, can they become a PPMC member? Would they
need to sign the ICLA even if they are never actually need to commit
project resources? In other words, can someone be a PMC member
without being a Committer? Or should we think of these as being
progressive degrees of involvement, strictly Contributor --> Committer
--> PMC member?
Previous code contributions are not required for PMC membership; the PMC
is free to decide what kinds of merit are sufficient to vote in a new
member. Having an iCLA isn't strictly a requirement, but it would be
strange to have a PMC member without one. iCLAs are also required for
an Apache id.
5) Is there an term limit on PPMC membership, or criterion for
sustained contributions and activity level? In other words, is it a
case of "Once elected, always a PMC member"?
Up to the project. Most projects expect that PMC members can remain
indefinitely. Many projects have an ad hoc process where they
occasionally ping PMC members who have not been present for a while to
ask if they want to remain on the PMC or not.
6) Similar for Committers. Is there a minimum threshold level of
activity that is needed to sustain that role?
Up to the project. Most projects allow committers to remain indefinitely.
-Rob
Excellent questions, by the way.
- Shane