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

Governance document #45

Merged
merged 1 commit into from
Aug 22, 2016
Merged

Governance document #45

merged 1 commit into from
Aug 22, 2016

Conversation

nibalizer
Copy link
Member

No description provided.

@nibalizer nibalizer mentioned this pull request Jun 27, 2016
2 tasks
@bbriggs
Copy link
Contributor

bbriggs commented Jun 27, 2016

I suggest that in our definition of lazy consensus we include that there must be at least one vote in favor

@nibalizer
Copy link
Member Author

@bbriggs done


The project management committee has responsibilities beyond contributors that include participating in strategic planning, release planning, and approving changes to the governance model. They also have the duty of upholding the community code of conduct and ensuring its values. The PMC is also responsible for updating the community code of conduct. It also makes decisions when community consensus cannot be reached.

The PMC has final say over who can become a committer and will use lazy consensus for approval. Discussion over committer nominations will be done in private.
Copy link
Contributor

Choose a reason for hiding this comment

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

If transparency is a core value, why is this particular part done in private?

Copy link
Member

Choose a reason for hiding this comment

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

I would also prefer if this is done publicly

Copy link
Member Author

Choose a reason for hiding this comment

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

This was in the template... but I agree with it. In OpenStack we nominate and approve publicly, and what we've seen after years of doing that is no one is actually willing to downvote including someone publicly. On the infrastructure side we moved to doing it more privately, and I feel like the analysis of someones contributions to the project is more two-sided and honest.

I not against doing it publicly, but I think it will be overall harder on the community to do it that way. In general we try to praise people in public, and give criticism in private. Having a public mailing list where people discuss the good and the bad of your contributions to a project is going to be emotionally challenging. It's also difficult for the people reviewing your contributions to be honest in that situation. If a private conversation is had, then the response can be agreed upon. Either an announcement that a new committer has joined our ranks, or a private conversation between one or two committers and the candidate focused on where we'd like to see improvement.

Copy link
Member

Choose a reason for hiding this comment

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

In https://theforeman.org/handbook.html:

Such objections may happen in public on the nomination thread. Understandably, however, not everyone is comfortable giving objections publicly. Therefore, it is acceptable for other committers to raise their concerns with the sponsor and/or other committers privately if they wish to do so. The sponsor is expected to update the nomination thread to show that it is on hold pending private concerns.

Regardless, during any objections, private or public, the nomination is on hold until the objections are resolved or the nomination is rejected. In the event of a failed nomination, the sponsor (as part of the discussing group) will know the grounds for the rejection, and can pass along constructive feedback to the candidate. Care should be taken to do this sensitively.

Copy link
Contributor

Choose a reason for hiding this comment

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

The above linked document seems to indicate that the RFC is public by default with an option for private discussion. Despite the keen observation that, yes, human nature is to avoid going against the grain and disagreeing with a choice publicly, I feel that having a private-only vetting and approval process is ripe for abuse.

These are the people who will act as a steering committee for VP, resolve disputes, and provide overall guidance and direction. If they were put into their seat by a process that violates our core principle of transparency, what does that say about us?

I would like to provide the option for private objections to a nominee, but this overall process needs to be much more open.

Copy link
Member Author

Choose a reason for hiding this comment

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

@bbriggs the PMC is elected publicly. We're just discussing giving out commit bit above.

Copy link
Member

Choose a reason for hiding this comment

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

@nibalizer I think it is good to make the initial internal discussion private. So every member can bring the other up2date. the announcement + maybe furthers discussions should be public.

Choose a reason for hiding this comment

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

"They also have the duty of upholding the community code of conduct and ensuring its values" is ambiguous. Is the PMC responsible for upholding the community CoC and ensuring the values of the CoC? Or is it responsible for upholding the community CoC and ensuring the values of the community? The sentence could say either.

Regardless, I looking in this repo for either a CoC or a statement of values and didn't find either. "I have to assume these are in another repo…?" she asked expectantly.

Copy link
Contributor

Choose a reason for hiding this comment

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

we have the CoC here: https://voxpupuli.org/coc/
all repositories usually link to it.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yea we can link to that in here no problem. Though maybe the CoC moves in here and other things link in here.

@bastelfreak
Copy link
Member

On a first view this looks very good. I will take another look tomorrow.

@daenney
Copy link
Member

daenney commented Jun 28, 2016

Can we do a quick s/VoxPupuli/Vox Pupuli/g?

It's a really great document though, kudos @nibalizer!


We do require one affirmative vote as part of the Lazy consensus model.

Organization-wide proposals can be proposed against the plubming repo(for governance, publishing, and miscellaneous issues), the modulesync repo(for standards and release/publishing issues), or the voxpupuli website repo(for communication and standards issues). As a courtesy, when you propose something you expect to be somewhat controversial, mention it in the voxpupuli chat room on freenode and get it added to the topic.
Copy link
Member

Choose a reason for hiding this comment

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

We need some spaces between letters and opening ('s.

@daenney
Copy link
Member

daenney commented Jun 28, 2016

The only thing I currently see missing is:

  • How do we run elections?
    • Formally, what's required to be in place for an election?
    • How does one put oneself up for election and are there any criteria (need to be collaborator)?
    • Is there a maximum number of years someone can hold a PMC seat?
    • How many votes does a nominee need and who gets to vote?
  • How do we remove someone as a PMC before their term is over?
    • What are the criteria for remove someone as a PMC member (CoC violations, ....)?
    • Who gets to decide on if someone should be removed?
    • How do we fill the empty seat?

One other thing I would like to clear up is what the responsibilities of those 5 PMC members are. There's a few things noted but do specific PMC members have additional tasks that differ from the rest of the PMC's? Like one person is appointed to handle external comms on behalf of the project etc. or do we go full consensus/involvement by every PMC on everything?

@nibalizer
Copy link
Member Author

@daenney for elections, I tried to 'cheat' basically by saying everything would be up to the elections officer. By doing that we can punt the specific of elections down the road until our first election. That allows us to accept a governance document without getting stuck in the minutea of picking election procedures. Once we run an election, the election officer can run the election using common sense, and we can iterate on the process each year. We will almost certainly screw up writing a procedure (some case will be missed) so giving authority to someone to just do what makes sense, makes the most sense.

@nibalizer
Copy link
Member Author

@daenney for removal, I'll take a stab at that.

@daenney for specific roles and responsibilities, I don't think we need to assign those in the governance documentation. Lazy consensus allows people to work on what they are interested in. If one person wants to take the lead on external communication, they can communicate that to the rest of the organization without needing it to be written down in the governance docs. Remember that the PMC can amend this document, so if roles do need to be set up, they can do that down the line.


Collaborators are community members who submit patches to the project. These patches may be a one-time occurrence or occur over time. Expectations are that contributors will submit patches that are small at first and will only grow larger once the contributor has built confidence in the quality of their patches.

*How to become one*: Submit a pull request to a VoxPupuli project
Copy link
Contributor

@igalic igalic Jun 28, 2016

Choose a reason for hiding this comment

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

another common way for our project to become a contributor is to contribute a module/gem


or perhaps this comment is supposed to go below?

@daenney
Copy link
Member

daenney commented Jun 28, 2016

@nibalizer That sounds fair to me (w.r.t the roles). Thanks for clarifying!

@nibalizer nibalizer force-pushed the governance branch 2 times, most recently from 5f4b927 to 4eaf89e Compare July 1, 2016 05:00
Users are community members who have a need for the project. They are the most important members of the community: without them, the project would have no purpose. Anyone can be a user; there are no specific requirements. Users should be encouraged to participate in the life of the project and the community as much as possible. User contributions enable the project team to ensure that they are satisfying the needs of those users. Common user activities include (but are not limited to):

* advocating for use of the project
* informing developers of project strengths and weaknesses from a new user’s perspective

Choose a reason for hiding this comment

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

Why qualify as "new"? It feels limiting when a simple "from a user's perspective" will do?

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed.


*How to become one*: Submit a pull request to a Vox Pupuli project

Collaborators are community members who submit patches to the project. These patches may be a one-time occurrence or occur over time. It is anticipated that collaborators' contributions may be small at first, growing more considerable once the collaborator has built up the necessary knowledge, experience, and confidence.
Copy link
Contributor

@bbriggs bbriggs Aug 11, 2016

Choose a reason for hiding this comment

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

These are sort of drive-by contributions. Is there another way to contribute outside of patches? We mention things like art, feedback, etc. in the Contributors section.

@hunner
Copy link
Member

hunner commented Aug 11, 2016

Notes from today's triage:

  • What about objections that arrive after the 72 hour window?
  • What is the threshold for merging sooner than the 72 hour waiting period?
  • Can we prevent people from dog-piling on a ticket or PR to get it merged? Do we need to?
  • Do we have contributor removal? Do we need it?
  • Do we have pre-existing ideas about who will fill the PMC?
  • What to do with objections in lazy consensus? (rnelson0 to comment)
  • rnelson0 suggested that handling PRs should be a section, since it's hinted at in two sections but never explicitly defined.
  • what is quorum for PMC elections?
  • Who will run the initial condorcet for PMC election if there is no elections officer?
  • Should the doc designate an initial elections officer as the "pmc bootloader"? Given the spirit of the elections officer position existing to minimize difficulties, this should be done.
  • How long does a condorcet run?
  • suggestion to use debian’s DPL or tech-ctte election rules.
  • suggestion to nominate multi-person election committee for first election.
  • suggestion to post PR for review on IRC&slack in topics and over several weeks, to reach all community members. Is there a mailing list?
  • how are changes to the governance document governed? Total control by PMC? Passing through the control of the elections officer? Lazy consensus?

For the full notes, see https://github.com/voxpupuli/community-triage/blob/master/modules/notes/2016-08-11.md

@daenney
Copy link
Member

daenney commented Aug 11, 2016

  • What about objections that arrive after the 72 hour window?

You're too late. We allow for at least 72hrs. You're of course welcome to raise a counterproposal/PR later to cancel it out. We need to set a threshold because otherwise we'll just deadlock and get into endless discussions where someone deems that someone else didn't wait long enough.

  • What is the threshold for merging sooner than the 72 hour waiting period?

Module or tool actively causes damage or security issues, as far as I'm concerned

  • Can we prevent people from dog-piling on a ticket or PR to get it merged? Do we need to?

Sure, we can prevent many things. Hasn't been an issue before, premature optimisation.

  • Do we have contributor removal? Do we need it?

Yes. If there are issues with a contributor you raise it with the PMC. This will most likely stem from CoC violations at which point the PMC is at liberty to investigate and take appropriate action

  • rnelson0 suggested that handling PRs should be a section, since it's hinted at in two sections but never explicitly defined.

No, this is a governance document about how we steer the project in general. We can specify things around how we want PRs handled but not in here. That also will likely need much more revision as times change and freezing it in the governance document makes changing it much more involved.

  • Who will run the initial condorcet for PMC election if there is no elections officer?

I'm happy to do so since I won't be putting myself up for election.

  • suggestion to use debian’s DPL or tech-ctte election rules.

Please no. It's unpleasant. We can do better.

  • suggestion to nominate multi-person election committee for first election.

Why? Suggestions are great but there needs to be some explanation as to why.

  • suggestion to post PR for review on IRC&slack in topics and over several weeks, to reach all community members. Is there a mailing list?

Didn't we just document lazy consensus over 72hrs? And again, PR workflow is not a governance thing. We also don't need to continuously reach all community members. The most active channel is IRC, Slack is pretty dead and so are the mailing lists and there's no requirement to get everyone's opinion all the time. Most people know who to poke for reviews for what modules. And seriously, over several weeks? What is this, MegaSlowPokeCorp Ltd Inc? Lets not over-regulate this, especially since we have no data to show that this is even remotely an issue right now.

@nibalizer
Copy link
Member Author

Thanks @hunner @bbriggs and @rnelson0 for your feedback on this. And thanks @daenney for answering so many of those questions. And a big thank you to @daenney for stepping up to be the first election officer.

Did the wall of questions get answered sufficiently? I don't see anything in @daenney's answers that I could improve on.

Template from http://outercurve.org/resources/governance/consensus_with_pmc.html

From that:

"This work is licensed under a Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License.
This work is based upon "Meritocratic Governance Model" by University of Oxford.  "
@bastelfreak
Copy link
Member

We discussed on IRC how we should move the document to a final stage. I didn't find any unclear spots left and would like to approve it from my side. Maybe we can start a little trend here and see how the rest thinks.

@nibalizer
Copy link
Member Author

Thanks @bastelfreak
Could community members now please leave "I apprrove" or "I dissaprove" messages on this PR? Hopefully it will soon look like the majority of the community is behind this.

@daenney
Copy link
Member

daenney commented Aug 15, 2016

@voxpupuli/collaborators It's time!

@daenney
Copy link
Member

daenney commented Aug 15, 2016

I apprrove.


*How to become one*: Be a collaborator and be nominated to the PMC as a contributor. Nominations should be sent to <email address for nominations>. You may nominate yourself. It is also common to give contributor status to an individual who donates code to the project by migrating a repository to the github namespace.

Contributors are collaborators who have shown wide dedication to the Vox Pupuli project in general or deep dedication to one project in particular, and the ability to work well with collaborators, users, and other contributors. The contributors have responsibilities beyond the collaborators. In particular, contributors formally decide on whether a pull request is merged or a release is cut. Contributors are recognized and valued for their contributions, in whatever form those contributions take. Tasks such as communication, documentation, art, packaging, and testing are all valued contributions. A contributor will use lazy consensus to decide on whether to merge a pull request from a collaborator. If the discussion is no longer moving towards a consensus, the PMC must vote via lazy consensus on whether the patch should be applied.

Choose a reason for hiding this comment

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

I'd prefer a link for lazy concensus down to that section as well

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 don't know how to do internal references like that in markdown... any hints?

Copy link
Member

Choose a reason for hiding this comment

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

You need to create an anchor, like so:

## <a name="section"></a> Section

And then when you want to reference to it

Take me to [section](#section)

Choose a reason for hiding this comment

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

Anchors are automatically created for headers in some markdown flavors, like GFM (Github Flavored Markdown). You can also create special ones, like @daenney mentioned.

One way to see what you already have is to click view on this doc and then try to click the links item that shows up to the left when you move the mouse over a heading. Or you can do what I did and construct it based on the words (lowercased) with a - where spaces are found in the header.

Choose a reason for hiding this comment

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

image

@bbriggs
Copy link
Contributor

bbriggs commented Aug 16, 2016

I approve.

@roidelapluie
Copy link
Member

roidelapluie commented Aug 18, 2016

Following the rules of this document, I propose that we merge this document after 72 hours, starting now, if no one has blocking issues with that (as of Lazy Consensus, you do not have to explicitely agree).

The remaining problems with this document can be addressed later; following the rules in this document.

@nibalizer
Copy link
Member Author

@roidelapluie sounds good. I padded it out to Sunday August 21st at 23:59 UTC.

@bmjen
Copy link
Member

bmjen commented Aug 18, 2016

👍 I approve!

Thanks for all the things @nibalizer !

@hunner
Copy link
Member

hunner commented Aug 18, 2016

I approve 👍 ʘ‿ʘ

@roidelapluie
Copy link
Member

I approve 👍

@daenney
Copy link
Member

daenney commented Aug 22, 2016

@voxpupuli/collaborators Ping! We're not getting nearly the amount of responses I would expect for something that's going to form the foundation about how we grow and steer this thing. Please take a minute to read up.

@voxpupuli/collaborators And one more thing... It would help us if you publicised your membership of VP on GitHub, it affects the numbers of collaborators we show on https://voxpupuli.org for example as we fetch them from the GitHub API and we don't get "private" members. Just go to https://github.com/orgs/voxpupuli/people/USERNAME and chose to publicise membership. There might of course be reasons that make you not want to do that which is perfectly fine, but all in all I think VP is one of the orgs I'm happy to show I'm a member of 😄.

Thanks!

@njam
Copy link

njam commented Aug 22, 2016

lgtm!

@rhoml
Copy link
Member

rhoml commented Aug 22, 2016

+1

@roidelapluie roidelapluie merged commit 08bf5d9 into voxpupuli:master Aug 22, 2016
@ferventcoder
Copy link

I approve

@roidelapluie
Copy link
Member

@daenney I could run the first elections, I have proposed a schedule in #56 . You could assist me within your possibilities.

@daenney
Copy link
Member

daenney commented Aug 24, 2016

I won't have any possibilities to assist you based on the time frame you proposed. I'm only back the 9th of September and everything will need to have been decided and be in place before then, including how we're going to vote and any solutions around that.

Do note that anyone that intends to run the elections cannot also nominate themselves for the elections.

@roidelapluie roidelapluie changed the title WIP: Governance document Governance document Aug 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.