Skip to content

Governance #10

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

Merged
merged 36 commits into from
Aug 5, 2020
Merged

Governance #10

merged 36 commits into from
Aug 5, 2020

Conversation

tacaswell
Copy link
Member

@tacaswell tacaswell commented Jul 27, 2020

This is the governance and named roles text from #7 pulled out into its own PR.

@tacaswell tacaswell changed the title Goverance Governance Jul 27, 2020
governance.md Outdated
- Matplotlib's social media presence

This communication is primarily broadcast out and intended to engage with
end-users.
Copy link
Member

Choose a reason for hiding this comment

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

change end -users to broader community. Like a good chunk of our social media engagement is core devs on other projects.

governance.md Outdated

In addition to communication to end-users we need to maintain
communication channels to developers of down-stream libraries and
other expert users.
Copy link
Member

Choose a reason for hiding this comment

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

the discourse is not solely for expert users and like we specifically want folks at all levels 'cause the discourse is also for the folks who won't go near SO.

The difference between the two community roles as I see it are:

  • communications-have a conversation with folks [general] about what's going on w/ the project & what folks can do w/ it & the like - this is more marketing/outreach
  • developer relations - have conversations with specific folk about what they're trying to do w/ mpl & want to do - this is more a problem solving/helping folks get acclimated role

governance.md Outdated
communication channels to developers of down-stream libraries and
other expert users.

- interaction with 3rd party extensions / publicity
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 this belongs in comms 'cause like that's the type of stuff the person wearing that hat is good at while like this role doesn't need it. For example I can think of multiple devs who have shown that they're fantastic at all the things on this list except publicity. I think 3rd party extensions go under both 'cause again it's all community.

@story645 story645 mentioned this pull request Jul 27, 2020
@tacaswell
Copy link
Member Author

Maybe the text in the Community Manager description is too detailed / fine-grained?

On a bit more reflection I realized that this wording bakes an inconsistency into the document (change the DPL by majority vote of SC, governance by 2/3 majority note of SC) so moving them out to their own file.

@story645
Copy link
Member

story645 commented Jul 27, 2020

Maybe the text in the Community Manager description is too detailed / fine-grained?

Yes/No in that it's got more of an umbrella role than the others, but I think it's fine to pull the description back to something like

  • evangelism, outreach, and support.
  • maintains the venues for conversation w/ the community

@jklymak
Copy link
Member

jklymak commented Jul 27, 2020

I'm having some trouble placing this in the framework of other organizations I'm familiar with. The steering council seems like an executive, but no roles are discussed in the context of the steering council. So there is no Treasurer, Secretary, or any other responsibility designated to the steering council. Similarly, it would be unusual to define the president, and then the group that he is president of - the president is typically just the leader of the executive.

I think the current setup is a bit unclear who has ultimate authority. I think it should be the steering council, and that the PL's authority should devolve from the steering council. I appreciate that is a change, but I think it would be more robust to problems with future PLs. I know you claim forking is the way to change the PL, but if a future PL takes the project down some crazy route, its not particularly acceptable for them to take the matplotlib name with them, and it doesn't seem like it should be allowed to happen if there is a reasonable Steering Council in place.

@tacaswell
Copy link
Member Author

That is a fair point, however I would prefer to keep this discussion about just the Deputy Lead roles (and renaming BDFL -> PL) rather than completely re-do the governance structure. I can remove all of the changes to the SC if that would make it clearer.

Historically we have been a BDFL / single lead + rough consensus style project which in some sense is, as long as you trust the PL (and I trust me and hope y'all also trust me), the simplest and clearest ultimate authority ;).

I think one of the worst failure modes here are a complicated governance document that we don't actually follow. For better-or-worse, we have an existing (and seemingly functioning) process that I worry if we try to make too big of a change we will revert back to (and evidence of this being a problem I cite my failure to fully stand up the SC yet). There have been a couple of projects (notably skimage and cpython) that have moved from single leader -> committee that we can use as a model. My preference here is that we actually stand up a full-sized (bigger than 3) SC and then writing them selves into full existence / authority.

@jklymak
Copy link
Member

jklymak commented Jul 27, 2020

... and then writing them selves into full existence / authority.

Sure, if they have that authority.

The problem is not whether we trust you, its whether you get hit by a bus tomorrow, then what happens?

@tacaswell
Copy link
Member Author

Sure, if they have that authority.

They do because the document has a method of changing its self (via 2/3 vote of current SC)

@jklymak
Copy link
Member

jklymak commented Jul 27, 2020

They do because the document has a method of changing its self (via 2/3 vote of current SC)

... which the PL can veto?

The full Steering Council must vote and at least 2/3 of the votes must be positive to carry out the proposed action (fractions of a vote rounded up to the nearest integer). Since the PL holds ultimate authority in The Project, the PL has authority to act alone in accepting or rejecting changes or overriding Steering Council decisions.

Copy link
Contributor

@dopplershift dopplershift left a comment

Choose a reason for hiding this comment

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

Comments on a few minor things.

These seem like straightforward modifications that would be good to get done. Discussion of eliminating PL and moving to a committee would best be done in another issue, or even better, against concrete language adjusting the document. None of this moves us further away from that model, and in fact could be argued is small step towards it.

story645 and others added 15 commits July 28, 2020 09:49
 - BDFL is an inside joke that has gotten outside of the in-group
 where it was funny.  I feel dumb using it to describe my self, but the
 look on my in-laws face when I used the term was the final straw.
 - Deputy Lead Developers aka "named roles" is a way to recognize
 that people are leading development along different axes of process.
 This is motivated by several aspects:
  1. empower people to make decisions
  2. provide a title people can put on their resume's
No fundamental changes, just wording and a bit of re-arrangement.
 - adjust BDFL -> LD
 - add emphasis to financial / fund raising aspect of council
 - assert the LD counts in the council size
 - introduce 2yr terms.  We want people to be able to gracefully roll
   out of responsibility.
 - introduce A/B staggered classes.  To make sure we maintain some
   continuity
Given that our Steering Council is smaller than Jupyters, do not imply
Institutional Partners can install Council Members.
Given that we have a smaller council, expect all to participate.  If
someone has gone inactive, then they should be removed first.
@tacaswell
Copy link
Member Author

@efiring @dopplershift Can you please approve and merge this? Once it hits master it will be "in force".

**Communications**

We need to maintain communication channels with the wider world. To
this end the CM is responsible for maintaining. This communication is
Copy link
Contributor

Choose a reason for hiding this comment

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

"To this end the CM is responsible for maintaining." maintaining what?

primarily broadcast out and intended to engage with the wider
community. The

- the [Ann] mailing list
Copy link
Contributor

Choose a reason for hiding this comment

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

This is the only one not capitalized.

other expert users.

- interaction with 3rd party extensions / publicity
- recruiting new contributors
Copy link
Contributor

Choose a reason for hiding this comment

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

Again, inconsistent capitalization.

Copy link
Contributor

@dopplershift dopplershift left a comment

Choose a reason for hiding this comment

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

I'm not going to hold this up for the minor things I noticed above.

@tacaswell
Copy link
Member Author

Fixed the spelling, we might want to tighten up the whole CM section to be closer in length to the others.

Copy link
Member

@efiring efiring left a comment

Choose a reason for hiding this comment

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

There are still two of Ryan's changes outstanding, and I have added a few requests for clarification and one for deletion of a sentence.

governance.md Outdated
Services for the benefit of the Project and Community.
- Make decisions when regular community discussion doesn’t produce consensus on
an issue in a reasonable time frame.
- Granting or revoking commit rights.
Copy link
Member

Choose a reason for hiding this comment

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

-> "Grant or revoke..."

governance.md Outdated

The Council reserves the right to eject current Members, other than the PL, if
they are deemed to be actively harmful to the project’s well-being, and attempts
at communication and conflict resolution have failed, from The Project.
Copy link
Member

Choose a reason for hiding this comment

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

Move "from The Project" up -> "eject current Members, other than the PL, from The Project, if they..."
But is this correct? Is the ejection from the Project, or from the Council? What would the former mean, and why would that ejection seat be reserved for Council members?

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 think this was meant to eject people from the SC but not from the project overall, but I am not sure the middle option (stay in project but ejected from SC?), changing to be fully eject from the project.

Copy link
Member

Choose a reason for hiding this comment

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

Is it even defined for a person to be in, or out of, The Project? I don't think we define project membership as such; there are Contributors, Developers, etc. but not Members, I think.

Copy link
Member Author

Choose a reason for hiding this comment

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

The Council reserves the right to eject anyone, including the Council
Members, from the project's online spaces if they are deemed to be
actively harmful to the project’s well-being, and attempts at
communication and conflict resolution have failed, by a super majority vote.

We can ban people from github / discourse / mailing lists / gitter if they are being disruptive.


### Conflict of interest

It is expected that the BDFL and Council Members will be employed at a wide
It is expected that the PL, DPLs, and Council Members will be employed at a wide
Copy link
Member

Choose a reason for hiding this comment

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

Below, plural is "conflicts of interest", not "conflict of interests".

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 think I got all of these?

To ensure the independence of SC members, none of the SC members can
be in the same reporting tree through employment or contracting.
This brings the description to the same level of detail as the other
roles and does not encode particular communication forums / mechanisms
directly in the governance text.
@efiring efiring merged commit f9b3bc5 into master Aug 5, 2020
@tacaswell tacaswell deleted the goverance branch August 5, 2020 03:24
@tacaswell
Copy link
Member Author

Well, I was going to do follow ups, but it's merged so 🎉

From time to time Matplotlib as an organization has in-person
meetings.
the future and may want to enlist further assistants. The CM is responsible
for Matplotlib's evangelism, outreach, and user support as well as mainitaining
Copy link
Member

Choose a reason for hiding this comment

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

for community outreach and support, as well as for publicizing what's new and useful in the project.

(I hate the word evangelism)

Copy link
Member

Choose a reason for hiding this comment

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

@story645 Your review came after I merged the PR, but please go ahead and put in a PR with this fix and any other fine-tuning you see.

@efiring
Copy link
Member

efiring commented Aug 5, 2020

Sorry if I jumped the gun, but I'll blame @dopplershift--I inferred from his review that it was time to just get this in.

@dopplershift
Copy link
Contributor

I'll take the blame. I didn't want to grammar this to death, especially for things that are not really governing (like verbiage describing DPL roles), since we've spent so long getting things going governance-wise.

@story645
Copy link
Member

story645 commented Aug 5, 2020

I just didn't see the merge, it's all fine.

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.

6 participants