Skip to content

Community gov update #5452

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 6 commits into from
Apr 1, 2022
Merged

Community gov update #5452

merged 6 commits into from
Apr 1, 2022

Conversation

cluhmann
Copy link
Member

@cluhmann cluhmann commented Feb 9, 2022

This PR updates the governance document to reflect recent discussions regarding the mission and naming of PyMC's community team as requested by @OriolAbril. As with other recent updates to the document, the diagram illustrating the organization of the various teams (docs/community_diagram.png) does not reflect the current update.

@codecov
Copy link

codecov bot commented Feb 9, 2022

Codecov Report

Merging #5452 (1df6808) into main (2a4694c) will decrease coverage by 8.35%.
The diff coverage is n/a.

❗ Current head 1df6808 differs from pull request most recent head a9b2ee5. Consider uploading reports for the commit a9b2ee5 to get more accurate results

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #5452      +/-   ##
==========================================
- Coverage   88.58%   80.23%   -8.36%     
==========================================
  Files          75       82       +7     
  Lines       13714    13941     +227     
==========================================
- Hits        12149    11185     -964     
- Misses       1565     2756    +1191     
Impacted Files Coverage Δ
pymc/sampling_jax.py 0.00% <0.00%> (-96.97%) ⬇️
pymc/distributions/mixture.py 19.76% <0.00%> (-75.85%) ⬇️
pymc/variational/stein.py 38.00% <0.00%> (-62.00%) ⬇️
pymc/variational/test_functions.py 38.09% <0.00%> (-61.91%) ⬇️
pymc/variational/inference.py 29.37% <0.00%> (-57.87%) ⬇️
pymc/variational/flows.py 31.55% <0.00%> (-52.00%) ⬇️
pymc/variational/opvi.py 30.29% <0.00%> (-51.96%) ⬇️
pymc/variational/callbacks.py 46.93% <0.00%> (-49.07%) ⬇️
pymc/variational/operators.py 48.78% <0.00%> (-44.08%) ⬇️
pymc/variational/approximations.py 30.06% <0.00%> (-36.01%) ⬇️
... and 49 more


For current members of the discourse team, refer to the recurrent and
For current members of the community team, refer to the recurrent and
core contributor membership sections.

### "No-team" tasks
Copy link
Member

Choose a reason for hiding this comment

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

"no-team" tasks need to be updated to avoid listing community team things.

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 wasn't sure about the allocation of the no-team tasks. Given the discussion of the team's mission, I guess these makes sense?

No-team tasks: fundraising and issue triaging
Community: running PyMC related events like PyMCon or sprints, outreach, or presence on social networks.

But then it seemed like the majority of the no-team tasks were being shifted to the community team and we had discussed how things like PyMCon would almost certainly involve many people/teams (social media activity certainly will be).

Copy link
Member

Choose a reason for hiding this comment

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

Sounds good. I think it's important to clear expectations on both what teams are supposed and not supposed to do. I also added a clarification on the docs team description for example; its existence doesn't mean only members of the docs team will write documentation or that only members of the docs team will update notebooks to v4. The docs team goal is to maintain the documentation tooling and infrastructure and see if it can be improved, review the docs to see if there are missing parts... but then its everyone that uses said tooling and documents the library.

I think something similar should happen with pymcon/sprints, and it did already with the sprint. The community team should probably take care of organizing and coordinating the event, like Meenal, Reshama, Beryl and I did for the sprint, but then everyone who can should help with reviewing talk proposals, giving talks, and other tasks "prepared" by the organization team. More or less the same way Ricardo and Austin gave webinars for the sprint and Sayam, Ricardo and Thomas are volunteering for the sprint itself. I wouldn't consider those part of "organizing" even if they are also critical and necessary for the event to suceed.

Does that make sense?

side note, if you think it would be good to still keep a longer list of "no-team" example tasks I have some ideas: enforcing the governance and code of conduct are also very clear "no team" tasks, also funding allocation and roadmap planning, fundraising can be divided between grant applications and reaching out to potential sponsors too.

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 have added more info about both the community team activities/responsibilities and tried to limit the intended scope (like you did for the doc team). I added additional no-team activities as you suggested.

Copy link
Member

Choose a reason for hiding this comment

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

Thanks, now we should probably review the team members. i.e. Meenal is leading the sprint and taking care of pymc twitter so should definitely be on the team with the goals defined now.

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed.

@@ -664,11 +664,11 @@ Team:
* Documentation team members are given permissions to [pymc-examples](https://github.com/pymc-devs/pymc-examples)
Copy link
Member

Choose a reason for hiding this comment

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

Community team members now also get github permissions to pymcon and pymc-data-umbrella repos (plus other repos we might create for other events and initiatives)

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 changed this and the permission examples. I think I hit got it correct, but some of the examples are a bit complicated.

the [pymc-devs](https://github.com/pymc-devs) organization.

#### Discourse
Similarly to the above section, Discourse permissions are also mapped to the discourse team
Similarly to the above section, Discourse permissions are also mapped to the community team
and the two contributor roles.

Role:
Copy link
Member

Choose a reason for hiding this comment

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

Do we all agree with these roles?

I don't know how Discourse works and I'm the one who proposed that so we'd have somehting to start the discussion. IMO the process should be as much as possible a "take what we have or want and write it down here" not really write down something here and then change everything else. cc @junpenglao

What I will do though after a grace period is making sure we are doing what we have written here; and if that were an issue restart the discussion, but it would be very nice to have the discussion "beforehand"

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 is roughly the way it works currently. But I agree that getting everyone on the same page now is a good idea. I know that there has been some confusion about what permission the various discourse roles/levels have.

Copy link
Member

Choose a reason for hiding this comment

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

We should limit the moderator and admins to community team member if possible.

Copy link
Member

Choose a reason for hiding this comment

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

@junpenglao I don't understand the comment, should that be changed? Right now core contributors on the community team and council members should be on the pool of rotating moderator/admin persissions, should it be only community core contributors?


For current members of the discourse team, refer to the recurrent and
For current members of the community team, refer to the recurrent and
core contributor membership sections.

### "No-team" tasks
Copy link
Member

Choose a reason for hiding this comment

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

Thanks, now we should probably review the team members. i.e. Meenal is leading the sprint and taking care of pymc twitter so should definitely be on the team with the goals defined now.

the [pymc-devs](https://github.com/pymc-devs) organization.

#### Discourse
Similarly to the above section, Discourse permissions are also mapped to the discourse team
Similarly to the above section, Discourse permissions are also mapped to the community team
and the two contributor roles.

Role:
Copy link
Member

Choose a reason for hiding this comment

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

@junpenglao I don't understand the comment, should that be changed? Right now core contributors on the community team and council members should be on the pool of rotating moderator/admin persissions, should it be only community core contributors?

GOVERNANCE.md Outdated
- Arnau, recurrent contributor, discourse team
* Added to the Discourse PyMC_team and given "leader" trust level
- Arnau, recurrent contributor, community team
* Added to the Community PyMC_team and given "leader" trust level
Copy link
Member

Choose a reason for hiding this comment

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

This was a reference to the first point in discourse roles about adding members to the PyMC_team (or devs or something else, again, don't really know what I'm talking about) on Discourse. The roles look wrong on that end which is probably why this doesn't make much sense either.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, the "PyMC_team" thing was confusing to me.

Copy link
Member

Choose a reason for hiding this comment

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

We can realign discourse teams as needed per this doc

Copy link
Member

Choose a reason for hiding this comment

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

That is the idea, but we need to define something here that we agree on and makes sense. I have no idea how discourse teams work and wrote the current proposal 😅. I wasn't sure it made much sense when I wrote it and I take @cluhmann struggling to understand what it meant as a confirmation that the doc needs updating and clarifying before we can go back on Discourse and make sure we follow what is defined here

Copy link
Member Author

Choose a reason for hiding this comment

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

Just to explicate some of the imprecision here, take our friend Arnau who is a recurrent contributor on the community team. Questions:

  • Do we add Arnau to the "the Community PyMC_team"? If so, what is that? Is this just supposed to be "Added to the Community team"? How does one become "a recurrent contributor on the community team" without being "added to the community team"? In other words, are these two separate steps or is this just a statement that, as a recurrent contributor, Arnau is necessarily listed as being part of the community team?
  • Do we give Arnau "leader" trust level on discourse? Not moderator? Administrator? Trust level X?

Copy link
Member

Choose a reason for hiding this comment

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

IMO being a contributor (of any type) and getting the premissions associated with that type are one and the same, a necessary and sufficient condition. If we write that core contributors of the dev team get write permissions to pymc repo, there should be no core dev contributors without nor people with write permissions who are not core dev contributors (or other role that gives those permissions like could be council member).

I don't really know what "leader" trust level entails, but as a general rule, recurrent contributors should not have administrative permissions, that should be restricted to core contributors. If "leader" trust level is somewhat similar to triage permissions on github I'd vote 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 would agree. Just trying to highlight some of what (I think) we're looking for input/consensus on.

Copy link
Member

@michaelosthege michaelosthege left a comment

Choose a reason for hiding this comment

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

Looks generally good to me.
Can you push it over the finish line so we have one fewer open PR in the list?

@canyon289
Copy link
Member

Looks great, merging and we can fix up anything in a follow up PR

@canyon289 canyon289 merged commit 09cb66f into pymc-devs:main Apr 1, 2022
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