-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Community gov update #5452
Changes from all commits
c0d928c
2e5c71a
de10cab
b38781a
4da0e46
a9b2ee5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -79,7 +79,7 @@ also members of all the groups listed above: | |
Recurring Contributors comprise what we understand as the PyMC Team. | ||
The Team will generally act as a single unit, except for some specific | ||
questions where dedicated teams will prevail. | ||
The PyMC project currently has Developer, Documentation and Discourse teams. | ||
The PyMC project currently has Developer, Documentation and Community teams. | ||
Team members can be part of one, some or none of these dedicated teams. | ||
The diagram below should help illustrate this idea. | ||
|
||
|
@@ -191,24 +191,24 @@ Contributors don't need to be part of any dedicated team. | |
* Bill Engels (dev) | ||
* Brandon T. Willard (dev) | ||
* Chris Fonnesbeck (dev, docs) | ||
* Christian Luhmann (discourse) | ||
* Christian Luhmann (community) | ||
* Colin Carroll (dev) | ||
* Eelke Spaak (dev) | ||
* Eric Ma (dev - PyMC Labs) | ||
* George Ho (dev) | ||
* Junpeng Lao (dev, discourse) | ||
* Junpeng Lao (dev, community) | ||
* Luciano Paz (dev - PyMC Labs) | ||
* Martina Cantaro (docs) | ||
* Maxim Kochurov (dev - PyMC Labs) | ||
* Meenal Jhajharia (docs) | ||
* Meenal Jhajharia (docs, community) | ||
* Michael Osthege (dev) | ||
* Oriol Abril-Pla (docs, discourse) | ||
* Oriol Abril-Pla (docs, community) | ||
* Osvaldo Martin (dev, docs) | ||
* Ravin Kumar (dev, discourse, docs) | ||
* Ricardo Vieira (dev, discourse) | ||
* Ravin Kumar (dev, community, docs) | ||
* Ricardo Vieira (dev, community) | ||
* Robert P. Goldman (dev) | ||
* Sayam Kumar (dev, docs) | ||
* Thomas Wiecki (dev, discourse - PyMC Labs) | ||
* Thomas Wiecki (dev, community - PyMC Labs) | ||
|
||
## Steering Council | ||
|
||
|
@@ -253,10 +253,10 @@ In particular, the Council may: | |
The current Steering Council membership comprises: | ||
|
||
- Chris Fonnesbeck (dev, docs) | ||
- Junpeng Lao (dev, discourse) | ||
- Oriol Abril-Pla (docs, discourse) | ||
- Ravin Kumar (dev, discourse, docs) | ||
- Thomas Wiecki (dev, discourse - PyMC Labs) | ||
- Junpeng Lao (dev, community) | ||
- Oriol Abril-Pla (docs, community) | ||
- Ravin Kumar (dev, community, docs) | ||
- Thomas Wiecki (dev, community - PyMC Labs) | ||
|
||
Note that as explained in the [community architecture section](#community-and-team-architecture) | ||
and as indicated again in the description of the Steering Council above, | ||
|
@@ -604,7 +604,7 @@ The dedicated teams are work units with two main objectives: better | |
distributing the work related to The Project, and to better showcase all the different tasks | ||
involved in The Project to attract more diverse Contributors. | ||
|
||
The PyMC project currently has Developer, Documentation and Discourse teams. | ||
The PyMC project currently has Developer, Documentation and Community teams. | ||
Team members can be part of one, some or none of these dedicated teams. | ||
|
||
Team members are expected to participate and join these dedicated teams | ||
|
@@ -630,18 +630,17 @@ write all the documentation for the PyMC library. | |
For current members of the documentation team, refer to the recurrent and | ||
core contributor membership sections. | ||
|
||
### Discourse team | ||
The focus of the Discourse team is managing and energizing the PyMC Discourse. | ||
### Community team | ||
The focus of the Community team is activities intended to nurture, energize, and grow the community of PyMC users and contributors. These activities include moderation of and participation in the discussions on the PyMC Discourse, planning and organization of events such as PyMCon and sprints, and coordination of presence on various social networks. These activites are not intended to be the sole responsibility of the Community team. Instead, the Community team provides leadership in these efforts, but recruits other contributors and community members as needed, thus encourging participation and fostering a healthy, self-sustaining community. | ||
|
||
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 | ||
All tasks related to the project that are not specifically listed in the | ||
description of a dedicated team are the responsibility of the PyMC team | ||
as a whole. At the time of writing, this includes but is not limited to: | ||
fundraising, issue triaging, running PyMC related events like PyMCon or | ||
sprints, outreach, or presence on social networks. | ||
enforcing this governance and the [PyMC code of conduct](https://github.com/pymc-devs/pymc/blob/main/CODE_OF_CONDUCT.md), developing project-related grants, soliciting of project sponsorships, decisions regarding the allocation of project-related funds, planning of the project roadmap, or triaging of GitHub issues. | ||
|
||
### Team structure in practice | ||
This section describes how members of the PyMC team are given | ||
|
@@ -663,40 +662,42 @@ Team: | |
and [pymc-experimental](https://github.com/pymc-devs/pymc-experimental) repository. | ||
* Documentation team members are given permissions to [pymc-examples](https://github.com/pymc-devs/pymc-examples) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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) There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. |
||
and [resources](https://github.com/pymc-devs/resources) repositories. | ||
* Community team members are given permissions to [PyMCon](https://github.com/pymc-devs/pymcon), [PyMC Data Umbrella](https://github.com/pymc-devs/pymc-data-umbrella), and other event- and community-related repositories. | ||
|
||
In addition, Council members are given admin rights to all repositories within | ||
In addition, Council members are given administrative rights to all repositories within | ||
the [pymc-devs](https://github.com/pymc-devs) organization. | ||
|
||
#### Discourse | ||
Similarly to the above section, Discourse permissions are also mapped to the discourse team | ||
Similar to the above section, Discourse permissions are also mapped to the community team | ||
and the two contributor roles. | ||
|
||
Role: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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" There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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? |
||
- Recurring Contributors are added to the [PyMC_team](https://discourse.pymc.io/g/PyMC_devs) | ||
group and are given the "leader" trust level. | ||
- Core Contributors are given [moderator permissions](https://discourse.pymc.io/g/moderators) | ||
if possible. | ||
- Recurring Contributors are given no special permissions | ||
- Core Contributors are added to the [PyMC_core](https://discourse.pymc.io/g/PyMC_core) | ||
group independently of the teams they are part of. | ||
Core Contributors in the community team are also added to the | ||
[Community Team](https://discourse.pymc.io/g/Community_Team) group. | ||
|
||
#### Accounts and services ownership and administration | ||
The PyMC Project also has accounts and hosts services on several platforms | ||
such as GitHub, Discourse, Twitter, ReadTheDocs or Medium. | ||
such as GitHub, Discourse, Twitter, ReadTheDocs, and Medium. | ||
|
||
If possible, all Council Members and relevant Core Contributors should have | ||
admin rights on those platforms. | ||
If this were not possible, admin rights should be distributed between | ||
administrative rights on those platforms. | ||
If this is not possible, administrative rights should be distributed among | ||
Council Members and relevant Core Contributors and establish a rotation | ||
of the admin rights every 1-2 years. | ||
of the administrative rights every 1-2 years. | ||
|
||
#### Permission examples | ||
This section lists some imaginary contributors with their teams and roles to | ||
provide examples on how to assign permissions: | ||
|
||
<details><summary>See permission examples</summary> | ||
|
||
- Arnau, recurrent contributor, discourse team | ||
* Added to the Discourse PyMC_team and given "leader" trust level | ||
- Arnau, recurrent contributor, community team | ||
* No permissions on Discourse | ||
* Added to all private communication channels | ||
* No permissions on any GitHub | ||
* Triage permissions on the pymcon, pymc-data-umbrella, and other "event" repositories | ||
|
||
- Berta, recurrent contributor, dev and doc teams | ||
* No permissions on Discourse | ||
|
@@ -705,24 +706,25 @@ provide examples on how to assign permissions: | |
of the pymc-devs organization | ||
|
||
- Carme, core contributor, doc team | ||
* Added to the Discourse PyMC_team and given "leader" trust level | ||
* Added to the community PyMC_core group on Discourse | ||
* Added to all private communication channels | ||
* Write permissions on pymc-examples and resources repositories, triage permissions | ||
to pymc and pymc-experimental repositories | ||
* Admin access to ReadTheDocs accounts | ||
* Administrative access to ReadTheDocs accounts | ||
|
||
- Dolors, core contributor, dev and discourse teams | ||
* Added to the Discourse PyMC_team and given "leader" trust level, | ||
given moderator permissions on Discourse (that might be rotating and not always active) | ||
- Dolors, core contributor, dev and community teams | ||
* Added to the Community Team and PyMC_core Discourse groups. | ||
Part of the rotation of administrative permissions on Discourse | ||
(Discourse allows only 3 admins on our current plan). | ||
* Added to all private communication channels | ||
* Write permissions on pymc and pymc-experimental repositories, triage permissions | ||
to pymc-examples and resources repositories | ||
* Write permissions on pymc, pymc-experimental, pymcon, pymc-data-umbrella, and other "event" repositories, triage permissions | ||
on pymc-examples and resources repositories | ||
|
||
- Eudald, core contributor, no dedicated team membership | ||
* Added to the Discourse PyMC_team and given "leader" trust level | ||
* Added to the PyMC_core Discourse group | ||
* Added to all private communication channels | ||
* Triage permissions on all repositories | ||
* Access to pymc_devs twitter account as they are the main manager | ||
* Access to PyMC gmail, drive and grant application platforms (i.e. CZI slack) as they are the main grant writing coordinator | ||
|
||
</details> | ||
|
||
|
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed.