Skip to content

Precommit fix #59

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
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
*~
resources/
public/
.DS_Store
Binary file removed content/community/.DS_Store
Binary file not shown.
12 changes: 6 additions & 6 deletions content/community/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ 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]({{< relref "/contributors/role" >}})
- [Skills and Techniques]({{< relref "/contributors/skills" >}})
- [Community Meetings]({{< relref "/contributors/community-meetings" >}})
- [Community Outreach]({{< relref "/contributors/community-outreach" >}})
- [Onboarding]({{< relref "/contributors/onboarding" >}})
- [Project Management]({{< relref "/contributors/project management" >}})
- [Community Manager Role]({{< relref "/community/role" >}})
- [Skills and Techniques]({{< relref "/community/skills" >}})
- [Community Meetings]({{< relref "/community/community-meetings" >}})
- [Community Outreach]({{< relref "/community/community-outreach" >}})
- [Onboarding]({{< relref "/community/onboarding" >}})
- [Project Management]({{< relref "/community/project-management" >}})
76 changes: 42 additions & 34 deletions content/community/community-meetings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,68 +3,76 @@ title: "Community Meetings"
---

## How to initiate a community meeting?

- 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:
- 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
- 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
- Anything important which needs to be brought up before the community
- Let everyone know that the meeting is governed by a CoC
- 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
- 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:
- 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?
- 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

## 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
- What projects are they working on?
- Something they learned which could be shared with the community
- Asking around if the attendees need any help
- 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
- 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:
- Conclude important points
- Revise tabled items - which were supposed to be discussed but didn’t get time
- Tell them about the next meeting
- Conclude important points
- Revise tabled items - which were supposed to be discussed but didn’t get time
- Tell them about 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:
- Greet and acknowledge every participant during the office hours
- Try to answer at least 1 question from everyone
- 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
- 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
- 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
- Example at: https://zarr.dev/community-calls/2023/2023-05-03.html
- 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

- 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 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
- 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
- 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 notes and upload them to the website
- Record the meeting
- 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
- 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 notes and upload them to the website
- Record the meeting

## Meeting templates (TODO)
[NumPy Community Meeting template](https://hackmd.io/76o-IxCjQX2mOXO_wwkcpg)

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

# Community Outreach
# Community Outreach

## Outreaching to Social Media

Use various social Media channels for outreach:
- Twitter:
- 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.
- 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.
- 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.

- Twitter:

- 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.
- 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.
- 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.

## Tools for community outreach(TODO)

## 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.
- 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.

- 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.

## Teaching Tutorials
- 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.

- 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.
- Announce major releases, highlighting new features and improvements.
- Share technical insights, tips, and tutorials related to the project.
- Recognize and appreciate community contributors through dedicated blog posts.

- 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.
- 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.
- 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

- 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
6 changes: 3 additions & 3 deletions content/community/onboarding.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ This is a draft document.
{{< /notice >}}

- Organizing sprints
- Organising sprints are an excellent way to invite new collaborators, solve issues, gather contributions and broaden the project community. Some helpful tips for organising a sprint efficiently:
- Have a list of issues from the issue tracker that can be worked on. The issues should have a mix of code (bugs, features, fixes) and no-code (documentation) tasks so that they can accommodate a diverse set of participants
- Handling a storm of new contributors during peak season (GSoC, Outreachy, GSOD etc.)
- Organising sprints are an excellent way to invite new collaborators, solve issues, gather contributions and broaden the project community. Some helpful tips for organising a sprint efficiently:
- Have a list of issues from the issue tracker that can be worked on. The issues should have a mix of code (bugs, features, fixes) and no-code (documentation) tasks so that they can accommodate a diverse set of participants
- Handling a storm of new contributors during peak season (GSoC, Outreachy, GSOD etc.)
27 changes: 14 additions & 13 deletions content/community/project-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,20 @@ title: "Project Management"

As a community manager, you might need to onboard contributors who may not contribute in technical ways.

* 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.
* 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.
- 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.
- 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.

### OSS management (TODO)

- 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
- Closing stale PRs and old issues
- Labelling issues
- Reviewing PRs or assigning reviewers to the PRs
- Solving the issues/responding to the issues
- Responding - to maintain communication with the author
- Closing stale PRs and old issues
- Labelling issues
9 changes: 5 additions & 4 deletions content/community/role.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,23 @@ title: "Community Manager Role"
---

## Who’s a community manager?
A community manager for an Open Source scientific Python project is a dedicated and enthusiastic contributor who plays an important role in building and nurturing a thriving community. They act as a bridge between the project and its community members, creating an inclusive and collaborative environment.

A community manager for an Open Source scientific Python project is a dedicated and enthusiastic contributor who plays an important role in building and nurturing a thriving community. They act as a bridge between the project and its community members, creating an inclusive and collaborative environment.
This person has a strong understanding of scientific Python and open source principles. They actively engage with community members, address their needs, offer support, and encourage their active participation. By organizing community events, facilitating discussions, and promoting knowledge-sharing, they ensure that the project's community remains vibrant and connected. The community manager is passionate about Python programming and committed to promoting diversity and inclusion in the scientific open source software community.

## What is the role of a community manager?

- Designate time for engaging community. (Social media, hosting events)
- Empowering others to become leaders.(Setting example, having initiatives)
- Guidance for conflict resolution.
- Guidance for conflict resolution.
- Making the community "Welcoming". (Having resources that make people want to stay, Good communication)
- Being a communication channel between users and developers (Understanding the user's needs to be able to participate in the road map.)

## Why do you need a community manager?

1. A community manager acts as a bridge between the project and its community members. They facilitate communication, engagement, and collaboration, ensuring that users feel heard, valued, and supported. By fostering a sense of belonging and inclusivity, a community manager helps to create a strong and loyal user community.
2. A community manager plays a critical role in building and sustaining an active and vibrant community around the project. They organize and promote community events, facilitate discussions, and encourage knowledge-sharing. This helps to foster connections, drive participation, and create a positive and collaborative atmosphere within the community.
3. A community manager serves as a trusted resource for community members, offering support, answering questions, and resolving conflicts. They act as a point of contact, providing guidance, feedback, and assistance when needed.
3. A community manager serves as a trusted resource for community members, offering support, answering questions, and resolving conflicts. They act as a point of contact, providing guidance, feedback, and assistance when needed.
4. A community manager helps to promote the project's values, goals, and mission. They advocate for the project and its benefits, both within the existing user community and to potential new users. This can lead to increased visibility, growth, and adoption of the project.
5. A community manager plays a crucial role in gathering user feedback and insights. They act as the voice of the community, conveying user needs, preferences, and concerns to the project team.

Expand Down
Loading