The R Project Zulip Chat
Welcome
The R Project Zulip is a supportive space to chat about developing, maintaining, and supporting The R Project, e.g.
- Contributing to base R
- Developing and maintaining supporting infrastructure (e.g. CRAN Cookbook, Weblate)
- R Foundation activities (e.g. useR! organisation)
It is not intended as a general discussion forum about using R ir R packages, installation issues, package development, or for “grass-roots” communities related to R. For chat or questions that are off-topic, please use an alternative forum for help.
By joining The R Project Zulip, members also agree to the Code of Conduct below. The administrators will enforce this code of conduct and expect cooperation in ensuring a safe environment for all.
Getting started with Zulip
We recommend reading Zulip’s official getting started guide. Although there are many similarities between Zulip and other chat platforms, e.g. Slack, there is much that is specific to Zulip that could seem unintuitive, and reading that doc is a great place to start. For more detail, see Zulip’s user documentation.
When you join, the Welcome Bot 🤖 will send you a short message with your first steps inside the platform. You can return to this message at any time to review the instructions.
Desktop and mobile apps
You can use Zulip in a browser, but you may prefer the desktop or mobile app for quicker access.
Set up your profile
Go to ⚙️ → Personal settings → Profile.
Adding a few details to your profile can help other contributors recognise you and understand how you are involved in The R Project. You can add a profile photo, your name, pronouns, job or community role, location, links to GitHub or GitLab, social media, and a personal or professional website.
Choose your channels
You’ll likely want to configure the channels that you’re subscribed to when getting started. The default set is quite limited, and there are many other channels you can subscribe to depending on your interests and how you contribute to The R Project.
See the Channels section for more information about how channels are organised and which channels are available.
Notifications
By default, you should get email notifications for direct messages, @mentions, and topics you follow.
To adjust your notification settings go to ⚙️ → Personal settings → Notifications.
Introduce yourself
It’s not necessary to introduce yourself, but feel free to say hello in the #introductions channel.
Posting on The R Project Zulip
To create a welcoming and supportive chat space, we ask members to:
- Be welcoming, friendly and patient.
- Avoid sarcasm or belittling language.
- Respect people’s technology choices.
- Provide direct links vs “RTFM”/“Just Google it” responses.
- Use gender inclusive language (see e.g. this factsheet on gender inclusive language). In particular,
- use “they” when talking about a hypothetical person
- avoid using “guys”
- avoid using terms such as “manpower”
We recommend the following best practices:
- Use
@mentionsthoughtfully - only tag someone if their input is really needed - Don’t worry about posting in the wrong place - messages can be moved
- You can edit your own messages for up to 1 day, and delete them within 10 minutes—these limits are set by the admins. If you need to clarify something later, it’s usually better to post a follow-up message. Admins can delete a message at any time.
Zulip structure and conversations
Channels
Channels organise conversations based on who needs to see them. Discussions in a channel should stick to the channel purpose.
You choose which channels you subscribe to. We have organized the channels into folders. You can filter available channels by folder to find channels related to each other.
Note that channels used to be called ‘streams’ in Zulip, so if you look at older documentation, you may see that terminology.
Folders
Channels are arranged in the following folders:
- GENERAL: Channels of general interest to those contributing to The R Project
- R CONTRIBUTION: Channels related to contributing to the code and documentation of base R
- TRANSLATION: Channels related to translation of materials in base R/recommended packages
- MODERATED TOPICS: Channels where only the admins can start a new topic, but anyone can reply to a topic. Please DM the admins if you would like to propose a new topic in one of these channels.1
- CRAN: Channels related to CRAN
- ZULIP: Channels related to using Zulip
Default channels
The current set of default channels is:
- GENERAL > general: Chat of general interest across the R project (use sparingly!)
- GENERAL > introductions: Say hello and a little bit about yourself
- GENERAL > random: Informal conversation and other events/projects not directly related to R contribution
- MODERATED TOPICS > announce: Announcements from the admins
- MODERATED TOPICS > events: Virtual/in-person meet-ups, study groups, book clubs, etc
- MODERATED TOPICS > paid-work: Job opportunties in open source development
- MODERATED TOPICS > volunteer-work: Unpaid opportunities in open source development
- ZULIP > sandbox: Experiment with Zulip here
- ZULIP > zulip: Questions and discussion about using Zulip
Topics
Zulip is designed around conversations that are labeled with topics, to make communication organized and efficient. It’s easy to get an overview of what conversations are happening, and to read one conversation at a time.
Topics are a foundational idea in Zulip, and central to the chat experience. They are conceptually similar to threads in Slack, but much more important in Zulip, with the official docs describing them as “one of the most wonderful aspects of using Zulip”. They enable lots of conversations to happen in the same channel at the same time, and conversations can last hours or days without messages getting lost. Topics appear in the left sidebar.
Topics form subdivisions within channels, and every message must be part of a topic. Topics are generally transient, and live for as long as there is active discussion on a topic. Thinking of topics like email subjects is helpful.
Tips for using topics effectively
- Topic names should be short, descriptive and clear, ideally no more than three or four words
- Keep replies in the same topic to help others follow the discussion
- A new conversation should start in a new topic
- Keep topics to their original subject - start a new topic if switching subjects
- If you post a message in an unrelated topic and realise it would be more helpful elsewhere, you can move it to a more relevant topic or channel. This ability to easily move messages is an excellent feature of Zulip. It helps keeps things organised and allows others to find and follow conversations more easily. Users can move their own messages up to a week after posting. Admins can move them anytime.
- When in doubt, post in
#generaland we can help move it later (though please use sparingly!)
Useful features
Linkifiers
Our Zulip supports linkifiers for GitHub.
Generally, github-org/repo#123 works for linking to an issue or PR. The below list gives a few more “special cased” repositories. Markdown syntax for links also works.
We support linking to issues or pull requests on repositories inside the r-devel GitHub organisation without requiring the r-devel/ prefix. For example:
- r-svn#273 links to https://github.com/r-devel/r-svn/pull/273
- rcwg#63 links to https://github.com/r-devel/rcwg/issues/63
- rsmf#25 https://github.com/r-devel/rsmf/issues/25
Pasting a link to a GitHub issue or PR will convert it to the short linkifier (though typing directly does not).
If you would like to propose further linkifiers, see the documentation of the format, and propose one in the #zulip channel.
Interact with Zulip via email
It is possible to interact with Zulip via email, but there is a bit of set up.
Set up to receive posts by email
- Log in to Zulip and go to ⚙️ → Personal settings → Notifications. Check
EmailforChannels(it is checked by default for DMs, mentions, alerts and followed topics). - Subscribe to any channels you want to receive messages about. We suggest unsubscribing from the default channels #sandbox and #zulip. Emails will have subject line of the form
#channel-name > topicso you can create rules in you email client to file emails by channel name (unfortunately the folder name is not included, so it up to you to group channels together in a meaningful way). - Close the Zulip app or logout. Email notifications are only sent when you are not “active”, i.e. you do not have the app open and in focus (within the last 140s).
Start new topics in a channel by email
This requires some initial set up per channel.
- Log in to Zulip. Find the name of the channel you want to send a message to, click
...and select “Channel settings”. - Under “Email address”, click the “Generate email address” button.
- For “Who should be the sender of the Zulip messages for this email address?” select “You”.
- Uncheck all the remaining boxes and click the “Generate email address” button.
- Copy the email address and save in your contacts with a useful alias, e.g. the channel name.
Once you have the email address for a channel you can start new topics by emailing the channel with a subject line of your choice. Remember the general tips (no salutation or sign-off, use markdown). If your subject line matches an existing topic, it will appear as a new post in that thread.
Code of conduct
The administrators of R Project Zulip are dedicated to providing a harassment-free chat space for everyone regardless of age, gender, sexual orientation, disability, physical appearance, race, or religion (or lack thereof).
Expected behaviour
All members agree to:
- Be considerate in language and actions, and respect the boundaries of fellow members.
- Refrain from demeaning, discriminatory, or harassing behaviour and language. Please refer to Unacceptable Behaviour for more details.
- Alert one of the administrators if you observe violations of this code of conduct, even if they seem inconsequential.
Unacceptable behaviour
Behaviour that is unacceptable includes, but is not limited to:
- Deliberate intimidation.
- Sustained or willful disruption of discussion.
- Stalking, e.g. persistent unwanted DMs, logging online activity for harassment purposes.
- Use of sexual or discriminatory imagery, comments, or jokes.
- Offensive comments related to age, gender, sexual orientation, disability, race or religion.
- Inappropriate simulated physical contact, e.g. textual descriptions like “hug” or “backrub” or custom emoji representing such contact, used without consent.
- Unwelcome sexual attention, which can include inappropriate questions of a sexual nature, asking for sexual favours or repeatedly asking for dates or contact information.
If you are asked to stop harassing behaviour you should stop immediately, even if your behaviour was meant to be friendly or a joke, it was clearly not taken that way and for the comfort of all members you should stop.
Members who behave in a manner deemed inappropriate are subject to actions listed under Procedure for code of conduct violations.
Procedure for code of conduct violations
The administrators reserves the right to determine the appropriate response for all code of conduct violations. Potential responses include:
- a formal warning to stop harassing behaviour
- temporarily/permanently deactivating membership of the chat space
What to do if you witness or are subject to unacceptable behaviour
In the case of an offending message, follow the Zulip guidance to Report a message. This will send a message to the private moderators channel. You can view the current moderators if you want to check who has access to this channel.
If reporting a message is not possible, for example, an offending message has been deleted but you have a screenshot to share, send a direct message to the moderators group (type moderators in the “Add users” dialog box to add users to direct message - this will expand to show everyone in the moderators group, so you can exclude individuals if necessary).
If the moderators are unable to respond in a timely manner, you may flag the issue by responding to the offending post with a brief comment, e.g.
- This comment is inappropriate, please delete it.
- This goes against the code of conduct, I have reported it.
There is no obligation to respond if you don’t feel comfortable. Don’t get drawn into an argument or pile on an offender, a brief comment is enough to signal the issue and give the offender a chance to make it right.
Individuals users can also mute abusive users to stop harassment that moderators have not yet addressed, or collapse individual messages that they don’t want to see.
CoC acknowledgements
The CoC is adapted from the useR! Code of Conduct.
Parts of the above text are licensed CC BY-SA 4.0. Credit to SRCCON. This code of conduct was based on that developed for useR! 2018 which was a revision of the code of conduct used at previous useR!s and also drew from rOpenSci’s code of conduct.
The administrators will remind people of the posting guide if necessary and reserve the right to deactivate the membership of anyone persistently acting against the ethos of the chat space.
Messages on public channels of the Zulip may be put in a public archive or shared outside the Zulip. Use direct messages/private channels for private messages, which should not be shared without consent.
By joining the Zulip, members also agree to the general code of conduct below. The administrators will enforce this code of conduct and expect cooperation in ensuring a safe environment for all.
Acknowledgements
- This work was supported by the Research Software Maintenance Fund, managed by the Software Sustainability Institute and funded by UKRI grant reference AH/Z000114/1.
- This Zulip-specific guidance above is adapted from Rust’s Zulip Guidance and Zulip tips and tricks for Bioconductor. Thanks to our friends in those communities for their materials and advice on setting up The R Project Zulip.
Footnotes
All channels on The R Project Zulip are moderated in the broader sense that admins ensure that posts adhere to the Code of Conduct.↩︎