zulip/templates/corporate/development-community.md

13 KiB
Raw Blame History

The primary communication forum for the Zulip community is the Zulip server hosted at chat.zulip.org:

  • Users and administrators of Zulip organizations stop by to ask questions, offer feedback, and participate in product design discussions.
  • Contributors to the project, including the core Zulip development team, discuss ongoing and future projects, brainstorm ideas, and generally help each other out.

Everyone is welcome to sign up and participate — we love hearing from our users! Public channels in the community receive thousands of messages a week. We recommend signing up using the special invite links for users, self-hosters and contributors to get a curated list of initial channel subscriptions.

To get help in real time, you will have the best luck finding core developers during daylight hours in North America (roughly between 15:00 UTC and 1:00 UTC), but the sun never sets on the Zulip community. Most questions get a reply within minutes to a few hours.

You can also read conversations in the community without creating an account. If you are evaluating using Zulip for your organization, check out these tips for exploring the product in action in the development community.


# Community norms

Zulip is a friendly and welcoming community, and we love meeting new people, hearing about what brought them to Zulip, and getting their feedback.

Getting started

Communication style

  • Converse informally; theres no need to use titles like “Sir” or “Madam”.
  • Use gender-neutral language. For example, avoid using a pronoun like “her” or “his” in sentences like “Every developer should clean [their] keyboard at least once a week.”

Getting help

  • When asking for help, provide the details needed for others to help you. For example, include the full traceback in a code block (not a screenshot), a link to the code or a draft PR youre having trouble debugging, etc.
  • Ask questions on channels rather than DMing core contributors. Youll get answers faster since other people can help, and it makes it possible for others to benefit from the discussion.
  • Dont ask the same question in multiple places. Moderators read every public channel, and make sure every question gets a reply.
  • Use @-mentions sparingly. Unlike IRC or Slack, Zulips topics make it easy to see what youre replying to, so you dont need to mention your conversation partner to make sure they will see or understand your reply. Core contributors will often @-mention someone who asked a question hours earlier to make sure they see the reply, but there is generally no need to @-mention a core contributor unless you need their timely attention.

# Where do I send my message?

This section describes popular public channels on chat.zulip.org. Kick off the discussion by starting a new topic in the appropriate channel! Dont stress too much about picking the right place if youre not sure; anyone in the community can edit a topic name, and moderators can move a topic to a different channel.

Channels for everyone

  • #feedback is for posting feedback on Zulip, including feature requests, suggestions for improvements to the UI or existing features, or anything else! We also appreciate hearing about how Zulip is used in your organization.
  • #integrations is for bug reports or questions about integrations.
  • #issues is for reporting bugs (or possible bugs) in the Zulip web app or server implementation.
  • #mobile, #desktop, and #zulip-terminal are the best places to post bug reports or questions about Zulip's apps. Note that #desktop should only be used for issues specific to the desktop app, which shares most of its UI and implementation with the web app.
  • Everyone is welcome to introduce themselves in #new members. Posting here with your name as the topic is a great option if youre uncertain where to start a conversation.
  • #test here is for sending test messages without inconveniencing other users :). We recommend muting this channel when not using it.

Channels for Zulip users and administrators

Channels for code contributors

  • #development help is for asking for help with any Zulip server/web app development work (use the app channels #mobile, #desktop, or #zulip-terminal for help working on one of the apps).
  • #provision help is for help specifically on setting up the server/web app development environment. #tools is other conversations about the server/web app developer tooling.
  • #git help is for help with using Git.
  • #code review is for getting feedback on your work. We encourage all developers to comment on work posted here, even if youre new to the Zulip project; reviewing other PRs is a great way to develop experience, and even just manually testing a proposed new feature and posting feedback is super helpful. Note that GitHub is our primary system for managing code reviews.
  • #backend, #frontend, #documentation, and app-specific channels (#mobile, etc.) are the right place for general conversations about work in those areas (including design discussions, questions, updates on a project, or anything else).
  • #automated testing is primarily used for automated notifications about CI failures, but is also a good place to discuss projects to improve Zulips automated testing infrastructure.
  • #api design is a low-traffic channel for discussing and coordinating changes to the Zulip API, with all stakeholders present.

Channels for translators

Channels for anyone spending time in the community

  • #announce is our low-traffic channel for project announcements (releases, etc.).
  • #checkins is for progress updates on what youre working on and its status; usually folks post with their name as the topic. Everyone is welcome to participate!
  • #design is where we discuss UI and feature design and collect feedback on potential design changes. We love feedback, so dont hesitate to speak up! Note that #feedback is usually the best place for end users to start a topic about a proposed design change; #design is primarily intended for discussing changes the community is actively working on.
  • #discussions is where we do fun community conversations like “Ask Me Anything” Q&A sessions with project members.
  • #documentation is where we discuss improving Zulips user, sysadmin, API, and developer documentation.
  • #general is for all topics of general interest.
  • #learning is for posting great learning resources one comes across.
  • #off topic is is for occasional conversations not related to Zulip, usually things of general interest to open-source communities.

You can always find the description for the channel youre reading at the top of the Zulip app.


# Anything else to keep in mind?

Dont try to read everything

Keeping up with everything happening in the Zulip project is both difficult and rarely a useful goal. To make the best use of your time, we highly recommend that you unsubscribe from channels that you arent interested in, mute channels that are only of occasional interest, and make use of Zulips skimming features, like Recent conversations, to spend your time on topics that interest you.

Searching for past conversations

To look for previous threads about something, we recommend using the following search filters: streams:public <your keyword(s)>.

This will search the full history of all public channels for <your keyword(s)>, including messages sent before you joined and messages on public channels youre not subscribed to.

Linking to GitHub issues and pull requests

We've set up custom linkifiers so that it's easy to link to issues and pull requests in Zulip project repositories when composing a message or starting a new topic. Here are examples for linking to issue 1234 in the main Zulip project repositories:

New features are tested here

We continuously test out new features or ideas on chat.zulip.org before rolling them out to Zulip Cloud or including them in a Zulip Server release (or deciding not to!). Please report in #issues anything you notice that seems broken! Its likely youve found a bug in an upcoming feature.