On 7/23/2011 3:39 PM, Rob Weir wrote:
Apache defines [1] a Project Management Committee as:
"A project management committee (PMC) is a committee of the Apache
Software Foundation charged with responsibility for a top level
project. The PMC is the vehicle through which decision making power
and responsibility for oversight is devolved to developers."
A portion of how provide is oversight is defined by Apache, through
its various policies, dealing with things ranging from IP to branding
to security. Some portion of oversight is exercised day-to-day by the
decisions we make. But I think there is a space for decision making
of a form that is more durable than an ad hoc decision. So something
that we and others can rely on as being a consistently applied rule,
practice or policy. This might be areas that are not explicitly
addressed in Apache policy. For example, we might want to require the
use of certain coding standards and naming conventions for our code
modifications. We might want to mandate a certain request form for
someone who wants to request use of our trademarks. And we might want
to state a consistent rule for how long we give newly elected
committers to process their paperwork.
Note that trademarks@ will need to approve any official branding-related
forms or documents, although the details are up to the project. The
other things you're talking about are indeed things the project
community should decide for itself.
In other organizations where I've volunteered, such durable rules are
routinely adopted in the form of "standing rules". A standing rule
is typically a written statement that is approved by a super-majority
of eligible voters and essentially supplements the policies of the
parent organization. A standing rule is scoped to a single committee
and may never contradict the parent organization's rules.
All Apache top level projects (TLPs) must follow required Legal,
Branding, Sponsorship, and Infrastructure policies, and must operate in
a generally consensus-driven manner with a diverse community; the basic
tenets of what is called the Apache Way. Otherwise, It's up to the
project how to operate; and it is explicitly up to the project how to
make technical decisions. Note that one of the legal rules is that the
(P)PMC itself is in charge of the project.
Does anyone know if there is a similar concept at in Apache projects?
Many Apache projects have their own bylaws, which are essentially the
same idea; search for "apache project bylaws" (or "charter" in some
cases) to see plenty of examples.
It seems like it would be useful to have, and to me it does not seem
repugnant to the decision making aspects of the Apache Way. It just
acknowledges that in the interest of transparency, fairness and
reliability, that broad decisions that impact a contributors long-term
work might sometimes benefit from being pre-defined rather than depend
on the ad hoc whim of the PPMC at some given future time. Sometimes
we all benefit from discretion and flexibility. But other times
uncertainty is not our friend.
Indeed, a key way to enable new community members to participate is to
ensure that the basic behaviors and processes are clearly documented.
If we want to adopt such a mechanism within the PPMC, I'd suggest the
following initial standing rule, which would be adopted according to
its own rules, as a bootstrapping exercise.
[1] http://www.apache.org/dev/pmc.html#mailing-list-naming-policy
Regards,
-Rob
Heh - here's my +1 as a project mentor for this general idea! I'd
suggest considering "Bylaws" to better match other projects, but that's
your decision.
- Shane
P.S. Note that this process itself shows a key aspect of the Apache Way.
This discussion is happening on the public list, where all of the
community can participate. Once there is a very general sense of
consensus (possibly with some changes), you hold a [VOTE] to make a
final decision.
This all happens in public. However the only binding votes on
project-wide issues like this may be cast by (P)PMC members. This does
not mean that votes and comments from non-(P)PMC members are
unimportant; in healthy projects, (P)PMC members certainly listen to and
work to understand the perspectives of all respectful participants.
However it is the (P)PMC that makes final decisions for the project itself.
=PPMC Standing Rules=
1. Any PPMC member can propose a Standing Rule by sending the text of
a Proposed Standing Rule to the project's main list in a thread
entitled "[DISCUSS] Foo for a Standing Rule". Such a rule must not
contradict any existing Apache policy.
2. After discussion, and possible modification of the Proposed
Standing Rule, the proposer shall initiate a vote by starting a thread
entitled "[VOTE] Foo for a Standing Rule". The vote shall run for at
least 72 hours.
3. Anyone may vote, but only votes by PPMC members are tallied. A
Proposed Standing Rule is approved if the number of +1 votes are at
least 2/3 of the total number of +1 and -1 votes cast. At least one
+1 vote must come from an Project Mentor.
4. Approved Standing Rules become effective immediately, unless other
stated in the Standing Rule. Approved Standing Rules shall be
published on the project's website.
5. A Standing Rule may be also be modified or revoked using this procedure.