(membership_guidelines)=

# Membership guidelines

This page holds resources for members of the Jupyter Server team.
They're meant to guide team members to be happy, productive members of the
team!

## What are the team resources?

There are a few resources that are particularly useful for team members. Here's
a quick list to get you started.

* [**The Jupyter Server Team Compass**](https://github.com/jupyter-server/team-compass)
  is a repository with lots of information about team-related things. It has
  development tips, information about team meetings, milestones and roadmaps,
  etc.
* [**The Jupyter Server Team Compass issues**](https://github.com/jupyter-server/team-compass/issues)
  are where we often discuss specific, actionable things related to the *team*
  (e.g., discussing whether to change something in the team-compass repo).
* [**The Jupyter Server gitter channel**](https://gitter.im/jupyter/jupyter_server) is used to have synchronous conversation
  for several projects. If a conversation will likely span multiple hours,
  or is relevant to many people, consider opening a thread in Discourse or
  the `team-compass` repository instead.

### General policy about communication channels

We are trying to organize our discussions in order to help both contributors and
maintainers find and choose the right communication channels and have a positive experience.

In this respect, we are using:
1. GitHub issues for specific discussions related to changing a repository's content
(e.g. feature requests, bug reports).
2. The [Discourse forum](http://discourse.jupyter.org/) for general discussions, support
questions, or just as a place where we can inspire each other.

## How can I help?

As a member of the team, you are encouraged to continue
helping in the same ways that you already have. Your contributions to
documentation, code, etc are always welcome.

Don't forget that, as a member of the team, you're representing the community
when you interact with people (online and offline). Try to keep a friendly, positive
attitude, and be welcoming and helpful in bringing others into the community
and answering their questions.

### Are there any specific responsibilies?

We don't want team membership to
be a big burden (many of us have one or more other jobs too!) but there are
a few things that you should do as a new team member:

1. **"Watch" the [team compass repository](https://github.com/jupyter-server/team-compass)**
   so that you're notified when team conversations are happening.
2. **Stay up-to-date on team meetings**. You can find a notes from previous meetings pinned at
   the [top of the team-compass issues page](https://github.com/jupyter-server/team-compass/issues).
3. **Vote**. Participate in at least 2/3 of votes happening in the team-compass repo. You should be automatically pinged on Github when a vote is called.
4. **Let us know if you'll be unavailable** or out of town for an extended period
   of time. It's no problem if you need to focus on other things for a bit, but it's
   helpful for the team to know who will be around.
   If it's something you'd rather not mention to the public then
   send an email to one of the team members letting them know, and they
   can communicate it to the others.
5. **Foster open and inclusive discussion**. As a team member, you are
   responsible for ensuring that conversation in our communities is positive
   and inclusive. Open public issues to discuss things with the team. Try to
   do most communication in public spaces where others can join, or
   report back to team members if important conversations happened offline.
   When creating issues, provide enough context so that others can understand
   and provide their input. Encourage feedback and input from others
   often, and be patient when merging code - it is almost better to
   wait a bit for an approval than to self-merge.

## When should I merge a pull request?

As a team member, you're encouraged to help others contribute to the project
by reviewing their code, guiding them towards making a contribution and
improving it, and ultimately merging their contribution into the project.

Having merge rights is both a privilege and a responsibility - please be
thoughtful when using it! To that extent, here are a few guidelines when
deciding to merge things into one of our repositories:

* **Use your best judgment**. As a member of the Jupyter Server team, we trust
  your judgment, and we ask you to use your best judgment in deciding when to
  take an action.
* **Make sure it's quality code**. We know this is somewhat subjective, but
  ensure that the code is well-organized and thoughtfully-written, that any
  new features are documented, and that it abides by best-practices in Python,
  JavaScript, etc.
* **Make sure there are tests**. We try not to merge any new features (or
  bugfixes!) without adding tests for them. It's easy to consider something
  minor-enough that it doesn't warrant a test, but try to avoid doing this!
  Adding tests usually only takes a moment, and our future selves will thank
  us for it later.
* **Make sure there's been enough time for discussion**. We're an open
  community with an inclusive decision-making process. This means that
  sometimes we need to slow down to make sure others have a chance to
  review and provide their thoughts on changes. There's no hard rule for
  this, but try to make sure people have a chance to weigh in. Consider
  pinging people that you think might be interested in a question, and
  give it a few extra days before merging if you think a topic will be
  complex enough to warrant discussion.
* **Don't be afraid to merge!** We know this is a bit counter-intuitive
  given what we just said, but don't be afraid to merge new code. If you
  think a change is really complex or potentially controversial, give it
  some time, but for most changes it is fine to just go ahead and merge.
  Again, we trust your judgment, and we don't want these guidelines to become
  a burden that slows down development.
