Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: improve doc for lazy consensus process #1281

Merged
merged 9 commits into from
May 24, 2024

Conversation

mhdawson
Copy link
Member

Refs: #1241

@mhdawson mhdawson requested a review from a team as a code owner March 28, 2024 14:55
governance/GOVERNANCE.md Outdated Show resolved Hide resolved
Copy link
Contributor

@tobie tobie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we modify the charter accordingly?

when consensus cannot be reached after a reasonable period of discussion.
For all votes, a simple majority of all group voting members for, or against,
the issue wins. A group voting member may choose to participate in any vote
through abstention.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"A group voting member may choose to participate in any vote
through abstention."

I'm not exactly sure what this means.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me it means that you can participate without saying yes or no, by abstaining.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that's the language that's also in the charter. It's either too explicit or not enough. For example,

  • is the vote of present members or all members?
  • is the vote async or not?
  • if the vote is of members present, do we need a quorum to have a vote?
  • do votes need to be announced in advance?
  • is simple majority "more than 50%" or "the answer with a bigger score"?
  • if majority is "more than 50%" are abstentions counted?
  • if so, what prevents reframing the question as its negative to flip the result of the vote, e.g. 4 people vote for prop x, 3 against, and 3 abstain. The vote fails with only 40% of the votes. Now organize a vote for !x. You'll get the 4 people that were for x vote against !x, the 3 that were against x now vote for !x, and the same 3 as before will abstain. So now we have only 30% for !x which fails, an do so x passes.
  • can anyone request a vote at anytime? If so, that goes against the idea of being consensus-driven. If not, the language needs to be mores specific about when it is OK to ask for a vote.

I don't want us to spend too much time discussing voting as the case never really showed up, so my suggestion would be to acknowledge that voting should be a last resort solution, costly in social capital, painful to organize, hard to weaponize, and favoring the status quo.

I'd suggest the following language:

Voting should only be done as a last resort. If a proposal to modify existing policies and processes (or add new ones) 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 (and thus the proposal to pass), at least 2/3 of all voting members must vote in favor. This is designed to make it difficult to change existing policies and processes (or to add new ones) without consensus, but prevent someone from completely blocking progress through objections.

WDYT?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WDYT?

I think the suggestion is a great addition.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also think this is a great addition/clarification of the consensus process for decision making.
It's a nit and not needed to land these changes, but depending on who is looking at the governance doc and decision making processes, it could help to explicitly state that these processes are applicable to anything in scope for the CPC (defined in the README.md). Nice work!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, the scope of the CPC is defined in the charter itself.

governance/GOVERNANCE.md Outdated Show resolved Hide resolved
Copy link
Contributor

@tobie tobie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for getting this started, @mhdawson.

Giving this another thought, I think we shouldn't duplicate the charter's content in the governance.md at all, even as a first step. governance.md should only reference the decision-making and voting policies of the charter.

I suggest we:

  1. change this PR so that governance.md only references the decision-making and voting policies of the charter, and
  2. bring your suggested changes directly into the charter itself, either in this PR or in a new, separate PR (whatever you feel as more convenient).

@tobie
Copy link
Contributor

tobie commented Apr 4, 2024

Opened a PR against this PR here: mhdawson#1

@mhdawson
Copy link
Member Author

mhdawson commented Apr 4, 2024

@tobie made an ask to remove references to "agenda item" but after that I will likely accept and we can discuss the 2/3 part in the working session next week.

@mhdawson
Copy link
Member Author

mhdawson commented Apr 5, 2024

@tobie landed your PR.

mhdawson and others added 9 commits April 5, 2024 16:15
Signed-off-by: Michael Dawson <midawson@redhat.com>
Co-authored-by: Tobie Langel <tobie@unlockopen.com>
Signed-off-by: Michael Dawson <mdawson@devrus.com>
Signed-off-by: Tobie Langel <tobie@unlockopen.com>
Signed-off-by: Tobie Langel <tobie@unlockopen.com>
@mhdawson
Copy link
Member Author

mhdawson commented Apr 9, 2024

We discussed in the CPC working meeting today. The main point of discussion was the requirement for 2/3 which is different than what was previously documented. None of the 9 people in the meeting were concerned with that. @openjs-foundation/cpc if you agree please add your +1 to the PR or make suggestions. We agreed to make one more checkin with the CPC before landing the PR based on no objections/approvals.

@tobie
Copy link
Contributor

tobie commented Apr 9, 2024

Heads-up that while @mhdawson's original PR didn't touch the charter this final version does, and so this needs Board approval.

Copy link
Member

@ovflowd ovflowd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, @mhdawson do you believe we can proceed with this PR? Or is there anything missing?

@tobie
Copy link
Contributor

tobie commented May 24, 2024

We just got board approval in today's board meeting.

@tobie tobie merged commit c5969db into openjs-foundation:main May 24, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.