From c5969db07b1cbf75f5f88b5e000dca4a457557d8 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 24 May 2024 12:51:29 -0400 Subject: [PATCH] Clarify lazy consensus and voting processes (#1281) * Clarify definition of lazy consensus and move it to charter * Define CPC voting to align it with actual CPC practices * Move process to change the charter to its own section Board approval obtained on 2024-05-24. --------- Signed-off-by: Michael Dawson Signed-off-by: Tobie Langel Co-authored-by: Tobie Langel --- CPC-CHARTER.md | 25 ++++++++++--------------- governance/GOVERNANCE.md | 15 +++------------ 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/CPC-CHARTER.md b/CPC-CHARTER.md index 51770bcc4..70799dd07 100644 --- a/CPC-CHARTER.md +++ b/CPC-CHARTER.md @@ -176,25 +176,17 @@ The CPC Voting Members will vote on candidates as described in the [Elections][] ## Section 9. Decision Making -For internal Project decisions, Collaborators shall operate under Lazy Consensus. -The CPC follows a [Consensus Seeking][] decision making model. -When an agenda item has appeared to reach a consensus the moderator will ask "Does anyone object?" as a final call for dissent from the consensus. +The CPC follows a Lazy Consensus Seeking decision-making model inspired by the [Apache Software Foundation's model][ASF community]. -If an agenda item cannot reach a consensus a CPC member can call for either a closing vote or a vote to table the issue to the next meeting. -Votes shall follow the procedure described in the [Voting][] section of this charter. +Lazy consensus is achieved by making a proposal in a forum that will reach all members of the group who should have the opportunity to participate in reaching consensus and waiting for an appropriate amount of time given the nature of the decision for anyone to object. It is not necessary to get explicit approval to proceed from all members, silence indicates consent. However, objections must be resolved in order to achieve consensus. ## Section 10. Voting -The CPC follows a [Consensus Seeking][] decision making model. -When an agenda item has appeared to reach a consensus the moderator will ask "Does anyone object?" as a final call for dissent from the consensus. +Voting should only be done as a last resort. -If an agenda item cannot reach a consensus a CPC member can call for either a closing vote or a vote to table the issue to the next meeting. -The call for a vote must be seconded by a majority of the CPC or else the discussion will continue. +If a proposal cannot reach consensus after a reasonable period of discussion, a voting member can call for objections to be overruled through an asynchronous vote. If this call is seconded by another voting member, an asynchronous vote must be organized. For the objections to be overruled, at least 2/3 of all voting members must vote in favor of overruling the objections. -For all votes, a simple majority of all Voting CPC members for, or against, the issue wins. -A Voting CPC member may choose to participate in any vote through abstention. - -Note that, in addition to requiring a simple majority vote of the CPC Voting CPC members, all changes to this charter are also subject to approval from the OpenJS Foundation board. +This voting process is designed to make it difficult to move a proposal forward without consensus, but prevent somenone from blocking progress through objections. ## Section 11. Definitions @@ -209,11 +201,14 @@ Contributors should rarely be encumbered by the CPC or Board. **Governing Body**: a group of Collaborators within a Project elected to represent the Project in an official decision making role as defined in the Project's governance policies. +## Section 12. Changes to this Document + +Changes to this document require CPC consensus and approval from the OpenJS Foundation Board. + + [Foundation mission and vision statements]: https://openjsf.org/about/ [Foundation bylaws]: https://bylaws.openjsf.org -[Voting]: #section-10-voting [Elections]: #section-7-elections -[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making [Condorcet]: http://en.wikipedia.org/wiki/Condorcet_method [Single Transferable Vote]: http://en.wikipedia.org/wiki/Single_transferable_vote [OpenJS Foundation bylaws]: https://bylaws.openjsf.org/ diff --git a/governance/GOVERNANCE.md b/governance/GOVERNANCE.md index b6797387a..5542e366b 100644 --- a/governance/GOVERNANCE.md +++ b/governance/GOVERNANCE.md @@ -57,17 +57,7 @@ To improve organizational transparency and collaboration between the CPC and Boa ## Consensus Seeking Process -The Team follows a [Consensus Seeking][] decision-making model. - -When an agenda item has appeared to reach a consensus, the moderator -will ask "Does anyone object?" as a final call for dissent from the -consensus. - -If an agenda item cannot reach a consensus, a Team member can call for -the item to be decided by a vote or to table the issue to the next -meeting. In both cases the decision must be seconded by a majority of the Team -or else the discussion will continue. Simple majority wins. Only Active -Members participate in a vote. +The team follows the [decision-making][cpc charter decision making] and [voting][cpc charter voting] policies described in the charter. ## Term for Voting Members @@ -229,10 +219,11 @@ CPC members may request fast-tracking of pull requests they did not author. In t [cpc charter]: ../CPC-CHARTER.md [cpc charter term]: ../CPC-CHARTER.md#voting-members [CPC charter section 5]: ../CPC-CHARTER.md#section-5-responsibilities-and-expectations-of-the-cpc +[cpc charter decision making]: ../CPC-CHARTER.md#section-9-decision-making +[cpc charter voting]: ../CPC-CHARTER.md#section-10-voting [cpc regular members team]: https://github.com/orgs/openjs-foundation/teams/cpc-regular-members [README]: ../README.md [OpenJS Foundation Directory]: https://github.com/openjs-foundation/directory-private/blob/HEAD/cpc-private.md -[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making [Active OpenJS Collaborator]: #definition-of-an-active-openjs-collaborator [Primary CPC Director]: https://github.com/openjs-foundation/cross-project-council/blob/HEAD/CPC-CHARTER.md#the-primary-cpc-director-as-defined-in-43d-in-the-openjs-foundation-bylaws [Secondary CPC Director]: https://github.com/openjs-foundation/cross-project-council/blob/HEAD/CPC-CHARTER.md#the-secondary-cpc-director-as-defined-in-43e-in-theopenjs-foundation-bylaws