Skip to content

Fix TODOs for Community Guide #246

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

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
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
11 changes: 8 additions & 3 deletions content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,18 @@ body = '''
Numerical computing lectures that teach key packages in the scientific Python ecosystem, such as NumPy, SciPy, Matplotlib, scikit-learn, and scikit-image.
'''

[[item]]
type = 'card'
title = 'Community Guide'
link = '/community'
body = '''
Learn how to manage the community of an open-source project.
'''

{{< /grid >}}

<!--
# - buttonText: Maintainer Guide
# url: /maintainers/
# text: Learn how to build, coordinate, and sustain a healthy project.
# - buttonText: Community Guide
# url: /community/
# text: Get familiar with the Scientific Python community.
-->
54 changes: 46 additions & 8 deletions content/community/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,49 @@ title: "Community Guide"
shortcutDepth: 2
---

Welcome to the Community Managers Guide! Here you will find useful resources that will help you foster your community better.

- [Community Manager Role](/community/role)
- [Skills and Techniques](/community/skills)
- [Community Meetings](/community/community-meetings)
- [Community Outreach](/community/community-outreach)
- [Onboarding](/community/onboarding)
- [Project Management](/community/project-management)
Welcome to the Community Guide! Here you will find useful resources that will
help you foster your project's community better.
Comment on lines +6 to +7
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Welcome to the Community Guide! Here you will find useful resources that will
help you foster your project's community better.
Welcome to the Community Guide! Here you will find useful resources, tips, and tricks that will
help you foster your project's community.


{{< grid columns="1 2 2 2" >}}

[[item]]
type = 'card'
title = 'Community Meetings'
link = 'community-meetings'
body = '''
Learn how to facilitate and run community meetings
'''

[[item]]
type = 'card'
title = 'Community Outreach'
link = 'community-outreach'
body = '''
Learn how to outreach to your community
'''

[[item]]
type = 'card'
title = 'Community Manager'
link = 'role'
body = '''
Learn about the role of a community manager
'''

[[item]]
type = 'card'
title = 'Project Management'
link = 'project-management'
body = '''
Learn how to manage your project
'''

[[item]]
type = 'card'
title = 'Skills and Techniques'
link = 'skills'
body = '''
List of non-exhaustive skills and techniques for managing OSS
'''

{{< /grid >}}
81 changes: 57 additions & 24 deletions content/community/community-meetings.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,75 +4,108 @@ title: "Community Meetings"

## How to initiate a community meeting?
Copy link
Member

Choose a reason for hiding this comment

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

Do you think it's worth adding in a preamble before these headers that describes the purpose of a community meeting and how it might be beneficial? That might help guide peoples' reading of this guide.


- Before starting the meeting, having a few items and discussion points in the agenda will help kick-start the meeting. These discussion points could be a mix of:
- Before starting the meeting, having a few items and discussion points in the
Copy link
Member

Choose a reason for hiding this comment

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

Here we jump straight into an explanation about starting the meeting and an agenda. Should the agenda be distributed beforehand? How? What is the best practice?

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 want to add points about scheduling the meeting, how to plan them (like suggesting alternating timing to allow for different time zones, etc.), and how to best advertise them to the community?

agenda will help kick-start the meeting. These discussion points could be a
mix of:
- Issues or PRs from the GitHub repositories which need attention
- Announcing any upcoming events/conferences to check if someone is going to attend them or is planning to
- Announcing any upcoming events/conferences to check if someone is going to
attend them or is planning to
Comment on lines +11 to +12
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 stating the purpose of announcing this will help clarify it here. This is my suggestion but maybe you have a different idea here?

Suggested change
- Announcing any upcoming events/conferences to check if someone is going to
attend them or is planning to
- Announcing any upcoming events/conferences relevant to the project to check if someone is going to
attend them or is planning to. People can then connect in person and build community or develop together in person.

- Important updates:
- These could be recent releases/new feature additions
- Addition/changes in the maintainer/contributor team
- Convergence of an ongoing discussion - a summary of how the community reached a decision
- Convergence of an ongoing discussion - a summary of how the community
Copy link
Member

Choose a reason for hiding this comment

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

What do we mean by convergence here? That the update should summarize if convergence exists? Or that the meeting should facilitate a discussion that seeks convergence?

reached a decision
- Anything important which needs to be brought up before the community
- Let everyone know that the meeting is governed by a CoC

## Ice-breakers

- Ice-breakers are usually effective when the participants are not familiar with each other
- Apart from the general introduction, which is usually name and role, it’s effective to add a fun question (generally non-technical) to ask around; these are:
- Ice-breakers are usually effective when the participants are not familiar with
each other
- Apart from the general introduction, which is usually name and role, it’s
effective to add a fun question (generally non-technical) to ask around;
these are:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
these are:
these could include:

- Favourite song, movie, dish, sport, game, tourist spot etc.
- If you could teach the world one thing, what would it be?
- What’s one interesting fact about yourself?

## How to address any critical issues in the project/community

- Sometimes, there are certain matter which needs to be brought up before the community for a more open and inclusive discussion
- This helps in taking into account various perspectives from the community and choosing a solution which is in the best interest of the community
- Sometimes, there are certain matter which needs to be brought up before the
community for a more open and inclusive discussion
- This helps in taking into account various perspectives from the community and
choosing a solution which is in the best interest of the community
Comment on lines +34 to +37
Copy link
Member

Choose a reason for hiding this comment

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

I don't think these need to be separate points.

Suggested change
- Sometimes, there are certain matter which needs to be brought up before the
community for a more open and inclusive discussion
- This helps in taking into account various perspectives from the community and
choosing a solution which is in the best interest of the community
- Sometimes, there are certain matters which need to be brought up directly with the
community for a more open and inclusive discussion. Bringing these up in a community meeting helps to take into account various perspectives from the community. Ultimately, this may help
choose a solution which is in the best interest of the community


## How to keep the conversation going?

- Occasionally, there are situations when the conversation during a community meeting dies, and it feels like you’re in a graveyard 🪦
- Having a set up of backup discussion points can help remove the awkward silence
- Going around in the audience to ask if they have something interesting to share with the community
- Occasionally, there are situations when the conversation during a community
meeting dies, and it feels like you’re in a graveyard 🪦
- Having a set up of backup discussion points can help remove the awkward
Comment on lines +41 to +43
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Occasionally, there are situations when the conversation during a community
meeting dies, and it feels like you’re in a graveyard 🪦
- Having a set up of backup discussion points can help remove the awkward
- Occasionally, there are situations when the conversation during a community
meeting dies, and it feels like you’re in a graveyard 🪦. Having a set of backup discussion points can help remove the awkward

silence
- Going around in the audience to ask if they have something interesting to
share with the community
- What projects are they working on?
- Something they learned which could be shared with the community
- Asking around if the attendees need any help

## How to conclude the meeting successfully

- The meeting should end on a positive note - if there has been any heated discussion/arguments, try to conclude before the end. And generally, in the end, you should:
- The meeting should end on a positive note - if there has been any heated
discussion/arguments, try to conclude before the end. And generally, in the
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 clarifying here would be helpful. Is the point to conclude before arguments end? Or to end on a positive note before the end of the meeting?

end, you should:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
end, you should:
end, one should:

- Conclude important points
- Revise tabled items - which were supposed to be discussed but didn’t get time
- Revise tabled items - which were supposed to be discussed but didn’t get
time
- Tell them about the next meeting
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Tell them about the next meeting
- Announce the next meeting time
- State what will be covered in the next meeting


## How to run office hours?

- Office hours are a great way to invite the community and answer their questions, guide them, help them understand any specific about your OSS project etc.
- Usually, the structure of office hours is open, but there are certain tips which could make it run smoother; they are:
- Office hours are a great way to invite the community and answer their
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Office hours are a great way to invite the community and answer their
- Office hours are a great way to invite the community to engage with maintainers and answer their

questions, guide them, help them understand any specific about your OSS
project etc.
- Usually, the structure of office hours is open, but there are certain tips
which could make it run smoother; they are:
- Greet and acknowledge every participant during the office hours
- Try to answer at least 1 question from everyone
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Try to answer at least 1 question from everyone
- Try to answer at least 1 question from each attendee (if time is limited, try to prioritize new attendees)

- Maintain a document so that everyone can jot down their questions, so it’s easier to go through them
- Maintain a document so that everyone can jot down their questions, so it’s
easier to go through them
- Invite them to the community meetings for broader discussions

## How to take meeting notes?

- Every community meeting should have some form of public record which can be stored as an archive - taking meeting notes is one way to do it. There are several ways to take notes efficiently, which is helpful for the community
- Record the essential things, decisions, and resolutions that were discussed during the meeting
- Writing cues during the meeting and then converting them into proper sentences is a helpful thing to do when you’re moderating/running the meeting
- Try to have a TL;DR section at the top - this would help the reader to decide if they want to dive into the full notes or not
- Every community meeting should have some form of public record which can be
stored as an archive - taking meeting notes is one way to do it. There are
several ways to take notes efficiently, which is helpful for the community
- Record the essential things, decisions, and resolutions that were discussed
during the meeting
- Writing cues during the meeting and then converting them into proper
sentences is a helpful thing to do when you’re moderating/running the
meeting
- Try to have a TL;DR section at the top - this would help the reader to
decide if they want to dive into the full notes or not
- Example at: https://zarr.dev/community-calls/2023/2023-05-03.html

## Some tips for your meetings
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
## Some tips for your meetings
## Some tips and ideas for your meetings


- Make time for demos/showcases/presentation
- The community members are always looking for exciting/innovative ways to use OSS projects in their workflow, and making time to showcase the work is a good element of a community meeting
- The demos/showcases could be - how your project is used to solve a problem in a specific domain
- The community members are always looking for exciting/innovative ways to use
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 "the community members" reads a bit ambiguously.

Suggested change
- The community members are always looking for exciting/innovative ways to use
- Members of a project's community are always looking for exciting/innovative ways to use

OSS projects in their workflow, and making time to showcase the work is a
good element of a community meeting
- The demos/showcases could be - how your project is used to solve a problem
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 isn't a sub-bullet of the previous element.

Suggested change
- The demos/showcases could be - how your project is used to solve a problem
- The demos/showcases could be - how your project is used to solve a problem

in a specific domain
- Make time for newcomers
- New contributors or newcomers are the users who have the potential of becoming future maintainers and helping them in the initial phase is beneficial for both the project and the individual and is in the spirit of open-source
- New contributors or newcomers are the users who have the potential of
becoming future maintainers and helping them in the initial phase is
Copy link
Member

Choose a reason for hiding this comment

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

Based on previous conversations we talked about also wanting to embrace people who contribute but don't maintain. I think this helps capture that for consistency across our project.

Suggested change
becoming future maintainers and helping them in the initial phase is
becoming future maintainers or long-term contributors and helping them in the initial phase is

beneficial for both the project and the individual and is in the spirit of
open-source
- Having a dedicated time slot for the newcomers to help them
Copy link
Member

Choose a reason for hiding this comment

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

I don't think this is supposed to be a sub-bullet of the previous point?

Suggested change
- Having a dedicated time slot for the newcomers to help them
- Having a dedicated time slot for the newcomers to help them

- Make community meetings accessible to the broader community
- Take into account community members in different time zones, differently abled, unavailability etc.
- Take into account community members in different time zones, differently
abled, unavailability etc.
Comment on lines +103 to +104
Copy link
Member

Choose a reason for hiding this comment

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

this is a minor nit, but I think it's a bit clearer

Suggested change
- Take into account community members in different time zones, differently
abled, unavailability etc.
- Take into account community members in different time zones, differently
abled, availability (or lack of) etc.

- Take notes and upload them to the website
- Record the meeting

## Meeting templates (TODO)
## Meeting templates

[Zarr Community Meeting template](https://hackmd.io/tFcffc__QRuo1UdGcGUbsg)
Copy link
Member

Choose a reason for hiding this comment

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

These two render alongside each other. What do you think about making this a bulleted list instead?

[NumPy Community Meeting template](https://hackmd.io/76o-IxCjQX2mOXO_wwkcpg)
53 changes: 37 additions & 16 deletions content/community/community-outreach.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,68 @@ title: "Community Outreach"

Use various social Media channels for outreach:

- Twitter:
- BlueSky/Mastodon:

- Utilize hashtags relevant to the scientific Python community to increase visibility.
- Engage with users by responding to questions, sharing resources, and participating in discussions.
- Retweet and mention influential users and organizations to foster connections.
- Utilize hashtags relevant to the scientific Python community to increase
visibility.
- Engage with users by responding to questions, sharing resources, and
participating in discussions.
- Reshare and mention influential users and organizations to foster
connections.
- Share updates on project releases, new features, and bug fixes.
- Highlight community contributions and achievements.

- LinkedIn:
- Create a LinkedIn group for the project to facilitate networking and discussions among professionals.
- Create a LinkedIn group for the project to facilitate networking and
discussions among professionals.
- Share project updates, news, and job opportunities.
- Encourage community members to share their experiences and insights related to the project.
- Connect with other professionals and organizations in the scientific Python field.
- Encourage community members to share their experiences and insights related
to the project.
- Connect with other professionals and organizations in the scientific Python
field.

## Tools for community outreach(TODO)
## Tools for community outreach

- [Buffer](https://buffer.com/)
- Buffer can be used to create, schedule and organise scoial media posts
across various platforms
- Atmost 3 social media accounts can be connected in the free tier

## Speaking at Conferences and Events:

- Submit proposals to relevant conferences, emphasizing the project's unique features and benefits.
- Prepare engaging presentations that demonstrate the project's capabilities and use cases.
- Submit proposals to relevant conferences, emphasizing the project's unique
features and benefits.
- Prepare engaging presentations that demonstrate the project's capabilities and
use cases.
- Provide live demos or tutorials to showcase the project in action.
- Connect with attendees during and after the event, answer their questions, and collect feedback.
- Connect with attendees during and after the event, answer their questions, and
collect feedback.

## Teaching Tutorials

- Organize regular online tutorials or sprints to educate the community about using the project.
- Organize regular online tutorials or sprints to educate the community about
using the project.
- Cover various skill levels, from beginners to advanced users.
- Provide clear documentation and code examples.
- Encourage community members to share their own tutorials and best practices.

## Writing Blog Posts:

- Keep the community updated on important news, such as project milestones, partnerships, and funding.
- Keep the community updated on important news, such as project milestones,
partnerships, and funding.
- Announce major releases, highlighting new features and improvements.
- Share technical insights, tips, and tutorials related to the project.
- Collaborative blog posts with institutions, reseachers, groups to highlight
use-cases, e.g. [Zarr x NASA](https://zarr.dev/blog/nasa-power-and-zarr/)
- Recognize and appreciate community contributors through dedicated blog posts.

## Creating content

- Create video tutorials, screencasts, or live coding sessions to demonstrate the project's usage.
- Create video tutorials, screencasts, or live coding sessions to demonstrate
the project's usage.
- Develop interactive Jupyter notebooks showcasing practical applications.
- Produce podcasts or interviews with community members or domain experts.
- Collaborate with other scientific Python projects for joint content creation, such as tutorials or blog posts.
- Create illustrations on how your project works: https://github.com/zarr-developers/zarr-illustrations-falk-2022
- Collaborate with other scientific Python projects for joint content creation,
such as tutorials or blog posts.
- Create illustrations on how your project works:
https://github.com/zarr-developers/zarr-illustrations-falk-2022
12 changes: 0 additions & 12 deletions content/community/onboarding.md

This file was deleted.

Binary file added content/community/oss_wheel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 13 additions & 9 deletions content/community/project-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,26 @@ title: "Project Management"

## Project management

As a community manager, you might need to onboard contributors who may not contribute in technical ways.
As a maintainer/dedicated CM, you might need to onboard contributors who may not
contribute in technically.

- Send a personalized welcome message expressing gratitude and introducing the project.
- Send a personalized welcome message expressing gratitude and introducing the
project.
- Provide an overview of the project's mission, values, and community culture.
- Highlight non-technical contribution opportunities like documentation, user support, translations, design, and community management.
- Create clear contribution guidelines with step-by-step instructions and templates.
- Highlight non-technical contribution opportunities like documentation, user
support, translations, design, and community management.
- Create clear contribution guidelines with step-by-step instructions and
templates.
- Maintain regular communication to share updates and opportunities.
- Recognize and appreciate all contributions, both technical and non-technical.
- Foster a welcoming and inclusive community environment.
- Ensure adherence to the project's code of conduct.
- Ensure adherence to the project's Code of Conduct.

### OSS management (TODO)
### GitHub triaging

- Overview of issues and PRs among several repositories
- Reviewing PRs or assigning reviewers to the PRs
- Solving the issues/responding to the issues
- Responding - to maintain communication with the author
- Responding to the unattended issues to keep conversation going
- Closing stale PRs and old issues
- Labelling issues
- Assiging appropriate labels to issues & PRs
- Archiving repositories that are no longer actively maintained
Loading