This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 8d4beb5bb71ced9691b1eb5b564ff5e6785b9445
Author: Rene Cordier <rcord...@linagora.com>
AuthorDate: Wed Aug 19 17:08:31 2020 +0700

    JAMES-3187 Guidelines subsection of the community documentation
---
 docs/modules/community/pages/guidelines.adoc | 137 ++++++++++++++++++++++++++-
 1 file changed, 136 insertions(+), 1 deletion(-)

diff --git a/docs/modules/community/pages/guidelines.adoc 
b/docs/modules/community/pages/guidelines.adoc
index 5590057..e07f1a7 100644
--- a/docs/modules/community/pages/guidelines.adoc
+++ b/docs/modules/community/pages/guidelines.adoc
@@ -1,4 +1,139 @@
 = Apache James Project guidelines
 :navtitle: Guidelines
 
-(TODO)
+This document defines the guidelines for the Apache James Project. It includes 
definitions of how conflict is being
+resolved by voting and who is able to vote.
+
+The objective here is to avoid unnecessary conflicts over changes and continue 
to produce a quality system in a timely
+manner. Not all conflict can be avoided, but at least we can agree on the 
procedures for conflicts to be resolved.
+
+== People, Places, and Things
+
+=== Apache James Project Management Committee
+
+The group of volunteers who are responsible for managing the Apache James 
Project. This includes deciding what is
+distributed as products of the Apache James Project, maintaining the Project's 
shared resources, speaking on behalf of
+the Project, resolving license disputes regarding Apache James products, 
nominating new PMC members or committers,
+and establishing these guidelines.
+
+Membership in the Apache James PMC is by invitation only and must be approved 
by consensus of the active Apache James
+PMC members. A PMC member is considered inactive by their own declaration or 
by not contributing in any form to the
+project for over six months. An inactive member can become active again by 
reversing whichever condition made them
+inactive (i.e., by reversing their earlier declaration or by once again 
contributing toward the project's work).
+Membership can be revoked by a unanimous vote of all the active PMC members 
other than the member in question.
+
+=== Apache James Committers
+
+The group of volunteers who are responsible for the technical aspects of the 
Apache James Project. This group has write
+access to the appropriate source repositories and these volunteers may cast 
non-binding votes on any technical discussion.
+
+Membership as a Committer is by invitation only and must be approved by 
consensus of the active Apache James PMC members.
+A Committer is considered inactive by their own declaration or by not 
contributing in any form to the project for over
+six months. An inactive member can become active again by reversing whichever 
condition made them inactive (i.e., by
+reversing their earlier declaration or by once again contributing toward the 
project's work). Membership can be revoked
+by a unanimous vote of all the active PMC members (except the member in 
question if they are a PMC member).
+
+=== Mailing list
+
+The Apache committers' primary mailing list for discussion of issues and 
changes related to the project
+(xref:mailing-lists.adoc#_server_developer_list[server-dev@james.apache.org]). 
Subscription to the list is open, but
+only subscribers can post directly to the list.
+
+=== Private list
+
+The Apache James Project's private mailing list for discussion of issues that 
are inappropriate for public discussion,
+such as legal, personal, or security issues prior to a published fix. 
Subscription to the list is only opened to Apache
+James PMC members and Apache Software Foundation Members.
+
+=== GIT
+
+All of the Apache James products are maintained in shared information 
repositories using GIT on git-wip-us.apache.org.
+The Apache committers have write access to these repositories; everyone has 
read access via anonymous GIT.
+
+== Voting
+
+Any of the Apache James Committers may vote on any issue or action item. 
However, the only binding votes are those cast
+by active members of the Apache James PMC; if the vote is about a change to 
source code or documentation, the primary
+author of what is being changed may also cast a binding vote on that issue. 
All other votes are non-binding. All
+committers are encouraged to participate in decisions, but the decision itself 
is made by those who have been long-time
+contributors to the project. In other words, the Apache Project is a 
minimum-threshold meritocracy.
+
+The act of voting carries certain obligations -- voting members are not only 
stating their opinion, they are agreeing
+to help do the work of the Apache Project. Since we are all volunteers, 
members often become inactive for periods of
+time in order to take care of their "real jobs" or devote more time to other 
projects. It is therefore unlikely that the
+entire group membership will vote on every issue. To account for this, all 
voting decisions are based on a minimum quorum.
+
+Each vote can be made in one of three flavors:
+
+*+1*
+Yes, agree, or the action should be performed. On some issues, this vote is 
only binding if the voter has tested the
+action on their own system(s).
+
+*+-0*
+Abstain, no opinion, or I am happy to let the other group members decide this 
issue. An abstention may have detrimental
+effects if too many people abstain.
+
+*-1*
+No. On issues where consensus is required, this vote counts as a veto. All 
vetos must include an explanation of why the
+veto is appropriate. A veto with no explanation is void. No veto can be 
overruled. If you disagree with the veto, you
+should lobby the person who casts the veto. Voters intending to veto an action 
item should make their opinions known to
+the group immediately, so that the problem can be remedied as early as 
possible.
+
+An action item requiring consensus approval must receive at least 3 binding +1 
votes and no vetos. An action item
+requiring majority approval must receive at least 3 binding +1 votes and more 
+1 votes than -1 votes (i.e., a majority
+with a minimum quorum of three positive votes). All other action items are 
considered to have lazy approval until
+someone votes -1, after which point they are decided by either consensus or a 
majority vote, depending upon the type
+of action item.
+
+All votes must be either sent to the mailing list for that action item.
+
+Votes are to remain open for 72 hours after which the developer who put forth 
the vote should tabulate the result and
+send this to the mailing list. A developer should be sensitive to holidays 
that could dampen participation in the vote.
+
+== Types of Action Items
+
+=== Long Term Plans
+
+Long term plans are simply announcements that group members are working on 
particular issues related to the Apache
+software. These are not voted on, but group members who do not agree with a 
particular plan, or think an alternate plan
+would be better, are obligated to inform the group of their feelings. In 
general, it is always better to hear about
+alternate plans prior to spending time on less adequate solutions.
+
+=== Short Term Plans
+
+Short term plans are announcements that a developer is working on a particular 
set of documentation or code files, with
+the implication that other committers should avoid them or try to coordinate 
their changes. This is a good way to
+proactively avoid conflict and possible duplication of work.
+
+=== Release Plan
+
+A release plan is used to keep all the committers aware of when a release is 
desired, who will be the release manager,
+when the repository will be frozen in order to create the release, and 
assorted other trivia to keep us from tripping
+over ourselves during the final moments. Lazy majority decides each issue in 
the release plan.
+
+=== Release Testing
+
+After a new release is built, colloquially termed a tarball, it must be tested 
before being released to the public.
+Majority approval is required before the tarball can be publically released.
+
+=== Showstoppers
+
+Showstoppers are issues that require a fix be in place before the next public 
release.
+
+=== Product Changes
+
+Changes to the Apache James products, including code and documentation, will 
appear as action items under several
+categories corresponding to the change status:
+
+* *Concept/Plan*
+An idea or plan for a change. These are represented as ADRs (Architectural 
Decision Records), stored under the `src/adr`
+folder. Votes are being requested early so as to uncover conflicts before too 
much work is done.
+
+* *Proposed Patch*
+A specific set of changes to the current product in the form of input to the 
patch command (a diff output).
+
+* *Committed Change*
+A one-line summary of a change that has been committed to the repository since 
the last public release.
+
+All product changes to the currently active repository are subject to lazy 
consensus. All product changes to a
+prior-branch (old version) repository require consensus before the change is 
committed.


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to