Skip to content
This repository has been archived by the owner on Nov 2, 2020. It is now read-only.

Replaces concensus with lazy concensus #5

Merged
merged 3 commits into from Aug 17, 2017

Conversation

bmbouter
Copy link
Member

No description provided.

@bmbouter bmbouter force-pushed the pup1-revisions branch 2 times, most recently from da5e871 to 8937025 Compare June 26, 2017 21:06
pup-0001.md Outdated
votes from community members.
* Consensus is not always possible. If obvious consensus is not reached, then the core devs [1]
decide.
* A PUP is accepted with two, +1 votes from core devs [1] and no blocking (-1) votes from core devs.
Copy link
Contributor

Choose a reason for hiding this comment

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

s/two,/two/

Copy link

@ammaritiz ammaritiz Jun 27, 2017

Choose a reason for hiding this comment

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

Instead of having a hardcoded value of X = 2, shouldn't X be related to the number of core devs in the community? The other option could be to adjust this value as and when the community grows.

Copy link
Contributor

Choose a reason for hiding this comment

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

It's a reasonable suggestion. I think if we're going to base this on the number of "core devs" rather than the community at-large, we would be fine leaving it at X=2. Any change to the number of "core devs" significant enough to warrant a change in X-value would likely warrant reviewing and possibly re-designing some of these guidelines.

Choose a reason for hiding this comment

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

Let me suggest that a core dev need not approve, only reject. If a 0 means "it is acceptable" than I would suggest it be that there be one other person who agrees and no one objects.

Choose a reason for hiding this comment

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

Actually, as I read this only core devs need to vote which is odd. I would suggest that there be a criteria which is passing that does not mention core devs (e.g. more +1s than -1s). You can add a core dev veto (a -1) if you want, but I think I should be able to suggest an awesome idea that the whole community wants and still have it pass if all the core devs vote +0. (full disclosure, I hate +0 and think it is an implicit +1)

Copy link
Member

Choose a reason for hiding this comment

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

+1 to @bkearney on not having to require any core devs to +1 a PUP. In that case the only criteria for passage would need to be 'no -1 from a core dev'.

Copy link
Contributor

Choose a reason for hiding this comment

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

This system of voting is not secret or synchronous and an individual can change their vote. Taken together, votes can be changed because of other votes. This adds a lot of flexibility for us to make strong decisions even when the decision we are making is not well suited to any voting system. If a core dev thinks the PUP ought not to pass because it doesn't have enough support, a core dev can change their vote to a -1.

Choose a reason for hiding this comment

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

@asmacdo 's interpretation is interesting and would be valuable to capture in the PUP.

Copy link
Contributor

Choose a reason for hiding this comment

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

#5 (diff) might be the right place for that.

Copy link
Member Author

Choose a reason for hiding this comment

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

I just pushed a new revision which allows +1s to come from anywhere not just core devs. It also includes a paragraph similar to @asmacdo 's comment about recasting votes along with examples.

pup-0001.md Outdated
Note that votes can come from anyone, not just core devs [1]. This is directly modeled after [the
Django process](https://docs.djangoproject.com/en/dev/internals/contributing/bugs-and-features/#how-we-make-decisions)
who modeled their process after the Python and Apache communities.
* -1: "Not the right choice and should definitely not be adopted."
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the reasoning behind this change? I kind of like the requirement that a -1 vote must include an explanation and that we specify that anyone can vote.

Copy link
Contributor

Choose a reason for hiding this comment

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

I see your changes below. Disregard!

Choose a reason for hiding this comment

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

Based on what we've discussed in terms of using -1 earlier in the process than final voting, maybe this should be softened to include "I have serious reservations that need to be thought through or addressed." The description here seems only appropriate for a final vote that is a definite "no".

Copy link
Member Author

Choose a reason for hiding this comment

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

I pushed a new version, which replaces the language with the suggested bit from this thread.

pup-0001.md Outdated
* Stated concerns with a blocking vote can be used to revise a PUP until the blocking vote is
recast.
* Votes can come from anyone, not just core devs [1] and are used as data points.
* Core devs [1] are expected to consider and echo serious feedback from the community, especially
Copy link
Contributor

Choose a reason for hiding this comment

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

I like the idea that we seriously consider feedback from the community but what does echo mean here?

Copy link
Member

Choose a reason for hiding this comment

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

I think that the interpretation is up to the individual core dev :)

Copy link
Member Author

Choose a reason for hiding this comment

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

I also think of this as something which each person can interpret. I've made no changes in response to this thread.

The +1, +0, -0, -1 voting process is used; votes are sent as responses via the
announcement/discussion mailing list. The voting has the following meanings:
announcement/discussion thread on the mailing list. The voting has the following meanings:
Copy link

Choose a reason for hiding this comment

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

Could another sentence explicitly stating that a vote can be changed at any time in response to other people's concerns and community votes be added?

Copy link
Member Author

Choose a reason for hiding this comment

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

I've added clarifying language and a section on recasting. It gives this case as a specific example.

@mhrivnak
Copy link

It seems like this is ready to have comments rolled up into another revision. If additional discussion is needed on a particular point before making a new revision, please call that out. Otherwise I think we'll need a new revision for discussion to continue.

* Adjusts the +1 approvals to come from anywhere, not just core devs
* Explicitly allows for votes to be recast
* Explains two examples where votes are recast. One is based on many
  other -1 votes being cast. The other is when concerns are addressed
  and a -1 vote is recast.
@bmbouter
Copy link
Member Author

I pushed a new revision which should address all changes. Please go comment.

@daviddavis
Copy link
Contributor

daviddavis commented Jul 31, 2017

Reviewed and LGTM. Thanks for updating the proposal.

Copy link
Contributor

@asmacdo asmacdo left a comment

Choose a reason for hiding this comment

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

Excellent revisions, thanks @bmbouter!

pup-0001.md Outdated
a vote to a -1 based on observing many -0 votes which indicate a PUP does not have broad support
even with enough +1 votes to pass.
* Votes can come from anyone, not just core devs [1].
* Core devs [1] are expected to consider and echo serious concerns from the community, especially
Copy link
Contributor

Choose a reason for hiding this comment

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

IMO: s/serious// but feel free to leave as is.


### Accepting/Rejecting

* A PUP is accepted with two +1 votes from anyone and no blocking -1 votes from core devs.
Copy link
Member

Choose a reason for hiding this comment

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

does 'anyone' mean community member?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes anyone effectively means 'community member'. It was added based on some comments from the last round.

Copy link

Choose a reason for hiding this comment

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

Is the author an assumed +1, or is it the author +2 positive votes? I assume tha latter.

Copy link
Member Author

@bmbouter bmbouter Aug 10, 2017

Choose a reason for hiding this comment

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

The author's vote is not assumed. They can abstain or vote. If an author votes +1 (very likely), an additional +1 is required to pass. I'm pushing a 2-line clarifying change in the next commit.

Copy link
Member Author

Choose a reason for hiding this comment

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

That clarifying language commit is here: f5b7282

@bmbouter
Copy link
Member Author

With 8 +1 votes and no -1 votes I'm going to merge this PR. Thanks to everyone who participated.

@bmbouter bmbouter merged commit c7f2e74 into pulp:master Aug 17, 2017
@bmbouter bmbouter deleted the pup1-revisions branch August 17, 2017 20:22
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants