Community management guide#
These guidelines are applicable whenacting as a representative of Matplotlib,for example at sprints or when giving official talks or tutorials, and in anycommunity venue managed by Matplotlib.
Our approach to community engagement is foremost guided by ourMission Statement:
We demonstrate that we care about visualization as a practice.
We deepen our practice and the community’s capacity to support users,facilitate exploration, produce high quality visualizations, and beunderstandable and extensible.
We showcase advanced use of the library without adding maintenance burden tothe documentation and recognize contributions that happen outside of the githubworkflow.
We use communications platforms to maintain relationships with contributorswho may no longer be active on GitHub, build relationships with potentialcontributors, and connect with other projects and communities who useMatplotlib.
In prioritizing understandability and extensibility, we recognize that peopleusing Matplotlib, in whatever capacity, are part of our community. Doing soempowers our community members to build community with each other, for exampleby creating educational resources, building third party tools, and buildinginformal mentoring networks.
Official communication channels#
The Scientific Python community uses various communications platforms to stayupdated on new features and projects, to contribute by telling us what is ontheir mind and suggest issues and bugs, and to showcase their use cases and thetools they have built.
The following venues are managed by Matplotlib maintainers and contributors:
library and docs:matplotlib/matplotlib
Social media#
Active social media#
Official accounts#
Mailing lists#
Social media coordination#
Team mailing list:matplotlib-social@numfocus.org
Public chat room:https://matrix.to/#/#matplotlib_community:gitter.im
Maintenance#
If you are interested in moderating the chat or forum or accessing the socialmedia accounts:
Matplotlib maintainers should reach out to thecommunity-manager.
Everyone else should send an email tomatplotlib-social-admin@numfocus.org:
Introduce yourself - GitHub handle and participation in the community.
Describe the reason for wanting to moderate or contribute to social.
Content guidelines#
Communication on official channels, such as the Matplotlib homepage or onMatplotlib social accounts, should conform to the following standards. If youare unsure if content that you would like to post or share meets theseguidelines, ask on theSocial media coordination channels before posting.
General guidelines#
Do not share information that violates Matplotlib'scode of conduct or does not align with Matplotlib'sMission Statement.
Focus on Matplotlib, 3rd party packages, and visualizations made with Matplotlib.
These are also acceptable topics:
Visualization best practices and libraries.
Projects and initiatives by NumFOCUS and Scientific Python.
How to contribute to open source projects.
Projects, such as scientific papers, that use Matplotlib.
No gratuitous disparaging of other visualization libraries and tools, butcriticism is acceptable so long as it serves a constructive purpose.
Follow communication best practices:
Do not share non-expert visualizations when it could cause harm, e.g.:
Could the information affect someone's decisions in a way that impacts their personal health or safety?
Could the information be used as part of a politicised debate?
Clearly state when the visualization data/conclusions cannot be verified.
Do not rely on machine translations for sensitive visualization.
Verify sourcing of content (especially on Instagram & blog):
Instagram/blog: ensure mpl has right to repost/share content
Make sure content is clearly cited:
e.g. a tutorial reworking an example must credit the original example
Limited self/corporate promotion is acceptable.
Should be no more than about a quarter of the content.
Visual media guidelines#
Visual media, such as images and videos, must not violate thecode of conduct, nor any platform's rules.Specifically:
Visual media must conform to the guidelines of all sites it may be posted on:
Emphasize the visualization techniques demonstrated by the visual media.
Clearly state that sharing is not an endorsement of the content.
e.g. bitcoin related visualizations
Accessibility#
Visual media in communications should be made as accessible as possible:
Add alt text to images and videos when the platform allows:
Warn on bright, strobing, images & turn off autoplay if possible.
For images and videos made by the social media team:
Make graphic perceivable to people who cannot perceive color well due tocolor-blindness, low vision, or any other reason.
Do not make bright, strobing images.
More guidelines athttps://webaim.org/techniques/images/.
Social media#
Matplotlib aims for a single voice across all social media platforms to build andmaintain a consistent brand identity for Matplotlib as an organization. Thisdepersonalization is the norm on social media platforms because it enablesconstructive and productive conversations; People generally feel more comfortablegiving negative and constructive feedback to a brand than to specific contributors.
The current Matplotlib voice and persona aims to be kind, patient, supportive andeducational. This is so that it can de-escalate tensions and facilitateconstructive conversations; being perceived as negative orargumentative can escalate very fast into long-lasting brand damage, beingperceived as personal leads to aggression and accusations faster than animpersonal account, and being perceived as friendly and approachable leads tohigher engagement. Instead of speaking with a directive authority, which can beintimidating and lead to negative engagement, it speaks as a peer or educator toempower participation. The current voice encourages more input from folks weengage with, and also makes it possible for folks who are not in the core teamto participate in managing the account.
While thebrand identity is casual, the showcasedcontent is high quality, peer-led resource building. Please follow theseguidelines to maintain a consistent brand identity across platforms.
Persona#
On social media, Matplotlib:
Acts as a sentient visualization library, so talks about itself as a we, us,our, and it. Avoids talking about itself in the 3rd person. Never uses 1st person.
Is very earnest, eager to please, and aims to be patient & painfully obliviousto snark and sarcasm.
Gets over-excited over shiny visualizations - lots of emojis and the like -and encourages folks to share their work.
Highlights various parts of the library, especially the more obscure bits andbobbles.
Acknowledges that it is a sometimes frustrating tangle of bits & bobbles thatcan confuse even the folks who work on it & signal boosts their confuzzlement.
Behavior#
When acting as a representative of the library, keep responses polite and assumeuser statements are in good faith unless they violate thecode of conduct.
Social graph#
Only followorganizations and projects, do not follow individual accounts forany reason, even maintainers/project leads/famous Python people!
Following these types of accounts is encouraged:
NumFocus and Scientific Python projects
3rd party packages
Visualization related projects and organizations
Open Source community projects
Sponsors
Recurring campaigns#
Typically the social media accounts will promote the following:
Matplotlib releases:
Highlight new features & major deprecations
Link to download/install instructions
Ask folks to try it out.
NumFocus/Scientific Python/open source visualization project releases
GSOC/GSOD recruiting and progress
Retired campaigns#
John Hunter Excellence in Plotting, submission and winners
Changing the guidelines#
As the person tasked with implementing these guidelines, thecommunity-managershould be alerted to proposed changes. Similarly, specific platform guidelines(e.g. X, Instagram) should be reviewed by the person responsible for thatplatform, when different from the community manager. If there is no consensus,decisions about guidelines revert to the community manager.