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

Onboarding #11

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions communications_guidelines.md
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@
These guidelines are applicable when acting as a representative of Matplotlib (for example at sprints or when giving official talks or tutorials) and in the following community venues managed by Matplotlib:
* https://github.com/matplotlib/matplotlib
* https://discourse.matplotlib.org/
* https://gitter.im/matplotlib/
* https://github.com/matplotlib/matplotblog
* https://gitter.im/matplotlib/
* https://github.com/matplotlib/matplotblog
* https://twitter.com/matplotlib
* https://instagram.com/matplotart/

@@ -13,38 +13,38 @@ These guidelines are applicable when acting as a representative of Matplotlib (f
- no gratuitous disparaging of other visualization libraries and tools; criticism is acceptable so long as it serves a constructive purpose
- follow visualization communication best practices
- don't share non-expert visualizations when it could be harmful
- put on meeting agenda when answer isn't clearly to hold off on sharing.
- put on meeting agenda when answer isn't clearly to hold off on sharing.
- clearly state when the visualization data/conclusions cannot be verified
- do not rely on machine translations for sensitive visualizations
- example: https://twitter.com/matplotlib/status/1244178154618605568
- verify sourcing of content (especially on instagram & blog)
- Instagram/blog: ensure mpl has right to repost/share content
- Instagram/blog: ensure mpl has right to repost/share content
- make sure content is clearly cited
- example: a tutorial using someone else’s example clearly cites the original source
- Limited self/corporate promotion is acceptable, but should be no more than about a quarter of the content of the blog/discourse post.
- if you think content is borderline, ask before publishing it
- Limited self/corporate promotion is acceptable, but should be no more than about a quarter of the content of the blog/discourse post.
- if you think content is borderline, ask before publishing it
- acceptable image guide:
- union of site guidelines favoring caution:
- keep it geared towards science/data visualization, and non-controversial images
- keep it geared towards science/data visualization, and non-controversial images
- site guidelines:
- https://help.twitter.com/en/rules-and-policies/twitter-rules
- https://help.instagram.com/477434105621119

## Communication Guidelines
- keep responses polite, assume user statements are in good faith unless they violate the [Code of Conduct](https://www.python.org/psf/conduct/)

## Recurrent Social Media Campaigns:
- Release Announcements
- Highlight new features & major deprecations
- Link to download/install instructions
- Ask folks to try it out.
- Ask folks to try it out.
- signal boost third party packages
- GSOC work during GSOC recruiting and work times
- John Hunter Excellence in Plotting, submission and winners

## Social Media Following Guide:
- only follow organizations/projects - mostly numfocus projects
- only follow organizations/projects - mostly numfocus projects
- especially 3rd party packages
- should at least be visualization related
- sponsors are also acceptable
- do not follow individual accounts for any reason (even maintainers/project leads/Guido!)
- do not follow individual accounts for any reason (even maintainers/project leads/Guido!)
180 changes: 180 additions & 0 deletions contributor_roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
# Contributor Roadmap/Expectations
Hello, thank you for your interest in contributing to Matplotlib!

Matplotlib is primarily administered via github, so more information
on the exact permissions granted to each role is available at [github
help](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#repository-access-for-each-permission-level)




# Development
Responsible for the codebase (including documentation)

* https://github.com/orgs/matplotlib/teams/developers


**contribute**: https://matplotlib.org/devdocs/devel/index.html

**triage:**
- triaging issues and pull requests means:
- assigning labels, milestones, and reviewers
- closing and reopening as needed
- marking duplicates
- get triage privileges: granted on 1st merged pull request
- (We need to write the script for this, run as a service on heroku’s free tier? can we do this with actions?)

**Get commit privileges:**
Significant or sustained merged pull requests
- including domain expertise as needed

**Lose Commit privileges:**
- no activity on the repository/calls/discourse/mailing lists in 6 months
- repeated or severe violations of [merge guidelines](https://matplotlib.org/devdocs/devel/coding_guide.html)
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation

# Release Powers
- has publish permissions to pypi
- has push access to macpython build system
- Who has this
- Lead developer, steering council, release manager
- responsibilities
- run release process

# Community / communications

Engages in community building, support, and outreach

* https://github.com/orgs/matplotlib/teams/community

## Blog
writes and reviews blog posts about all things Matplotlib and made with Matplotlib
* https://github.com/orgs/matplotlib/teams/blog
* https://github.com/matplotlib/matplotblog

**contribute**:
* https://matplotlib.org/matplotblog/posts/how-to-contribute/

**get commit privileges:**
* sustained constructive reviews of contributed blog posts
* at discretion of [communications lead](named_project_roles.md)

**lose commit privileges:**
- repeated or severe violations of communications and social media guidelines
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation
- at discretion of [communications lead](named_project_roles.md)

## Teaching
Develops talks and tutorials to illustrated using and developing applications with Matplotlib

* https://github.com/orgs/matplotlib/teams/teaching

**contribute:**

- significant or sustained contributions to:
- https://github.com/matplotlib/presentations
- https://discourse.matplotlib.org/c/showcase/tutorial
- significant or sustained body of opens source teaching materials:
- book, long running blog series

**content guidelines:**

- [Social Media Guidelines](communications_guidelines.md)
- [Code of Conduct](https://www.python.org/psf/conduct/)

**removal from team:**
- repeated or severe violations of [Social Media Guidelines](communications_guidelines.md)
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation
- at discretion of [communications or teaching lead](named_project_roles.md)

## Discourse
https://discourse.matplotlib.org/


Foster engagement on the discourse

**contribute:**
* participate in discussion on https://discourse.matplotlib.org/

**increasing trust level to access more privileges:**

- https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/
- sustained constructive participation in discussions

**get suspended or banned:**
- repeated or severe violations of [discourse guidelines](https://discourse.matplotlib.org/faq)
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation

## Instagram
instagram.com/matplotart/

Curate a gallery of data and scientific visualization art made using Matplotlib

**contribute:** DM, tag #matplotlib, submit at http://bit.ly/matplotart

**curate the account:**

- sustained positive contributions to Instagram
- sustained positive contributions to https://discourse.matplotlib.org/c/showcase
- sustained positive tagging of matplotlib content on twitter

**revoke curation privileges:**

- repeated or severe violations of [Social Media Guidelines](communications_guidelines.md)
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation
- at discretion of [communications lead](named_project_roles.md)

## Twitter
https://twitter.com/matplotlib

Signal boost what’s new with the library & 3rd party packages, promote new work built on Matplotlib, and engage with the community.

**contribute:** tweet @matplotlib or tag #matplotlib

**tweet as twitter account:**
- be a lead on at least one of the other community projects

**revoke twitter access:**

- repeated or severe violations of [+Social Media Guidelines](https://paper.dropbox.com/doc/Social-Media-Guidelines-GMgkvuznnxwtZpwFvPogS)
- potential repercussion of a [Code of Conduct](https://www.python.org/psf/conduct/) violation
- at discretion of [communications lead](named_project_roles.md)

# Github

* https://github.com/matplotlib/matplotlib

## Github Organization ownership
Full control of everything on GH
**People:**
- Lead developer, steering council

Want to keep this set small enough that we don’t have too much
unneeded attack surface area, but big enough that we don’t have single
point of failure.

## Administration permissions

Manages the administration of the Matplotlib github repositories.

* https://github.com/orgs/matplotlib/teams/admin

- Made up of steering council members, appointment process discussed here:
- https://github.com/matplotlib/governance/blob/master/governance.md#steering-council
- should decouple SC and admin power going forward

**Responsibilities:**
- on a GH team that has “Admin” level permissions on all repositories

## Domain Team Member
We have a number of sub-teams to maintain domain specific packages

**Responsibilities:**
- maintain those projects
- have at least write premission on the repos for that project

## Organization Member
**Responsibilities:**
- Can create and add members to Matplotlib teams
- Can delete / moderate issues
- Can create new repositories