The sprint is attended by people from various timezones, so expect more asynchronous discussions throughout the sprint.
We will be using Discord to communicate during the sprint. See the Discord Setup Guide for more details.
Additionally we will use Zoom for the kick-off and send-off meetings and for group video chats.
Starting a new meeting¶
You’re free to schedule a meeting with another participant anytime. When you scheduled a meeting, please add the meeting to the shared Google Calendar. Once you add the meeting to Google Calendar, it will be automatically announced on Discord. Other sprint attendees will be able to discover your scheduled meeting, and join in if they’re interested too.
Remember to take notes during your meeting!
We heard that people didn’t like HackMD from last year’s sprint. So this time we have decided to use Google Docs. We will be creating the Google Docs and share the links.
When you’re in a group meeting, please remember to take down notes, so those unable to attend the meeting can get up speed.
We have created a Google Doc for each project. You can find the link to the notes in Sprint Projects. We will ensure that each participant will have access to all the docs as it gets closer to the sprint.
Discord Setup Guide¶
Welcome to the Discord setup guide! The information in this guide is mostly specific to sprint participants, and will cover:
For additional details that cover the fundamentals of using Discord in general, I would recommend their Beginner’s Guide. I’ll go over some basics, but the above guide is more detailed for first-time users.
For those who are very familiar with using Discord, feel free to skip to “Joining Python Discord”.
As a very general Discord recommendation, I would advise downloading the desktop client at https://discord.com/download. Generally, it looks and functions better as a full-screen desktop application rather than in the browser as a web application, but either works reasonably well.
If anything is unclear, either within this guide or in using Discord in general, feel free to reach out to the author directly at email@example.com or via DM on discuss.python.org to aeros.
Prior to joining any public server (especially highly populated ones), it is recommended to configure account privacy settings to disallow DMs from server members, and strictly allow friend requests from existing friends.
After clicking the gear box in the lower left corner, proceed to “User Settings > Privacy & Safety”:
In the above image, the relevant options are highlighted:
“Allow direct messages from server members”: Off. Without this setting, any member on a mutual server would be able to directly send messages.
“Who can add you as a friend?”: Friends of Friends only. Using this setting, only those who are friends with your existing friends will be able to send friend requests. This requires at least one mutual friend in order for others to add you, but it will drastically reduce the pool of potential users that can send friend requests.
As for that one mutual friend, I would recommend for participants to send a friend request to aeros#0717, and then add each other. This would allow each participant of the sprint to easily DM anyone they’ve added.
For participants that don’t have a substantial public following, simply disabling DMs from server members and allowing anyone to add you as a friend will likely be sufficient. The above recommended settings are to ensure minimization of undesired contact. Less restrictive settings will make it easier to add others, so it might be worth starting with those and making them more strict as needed. This setup usually works well for me, with only a few intermittent random friend requests.
The options below this area contains additional settings related to privacy between the user and Discord. Since these are purely personal decisions and have no direct impact on the sprint, it will not be covered in this guide.
The default settings can work reasonably well prior to joining, but I have a few specific recommendations based on my own experience with Discord.
The audio settings can be accessed by clicking the lower left gearbox and going to “App Settings > Voice & Video”.
At the top of the page, it is worth briefly verifying that the input/output devices match the ones that are desired to use, such as selecting your headset instead of built-in audio. Also, be sure to click “Let’s Check” to verify that discord is able to pick up on your voice.
As for the recommended input settings, it depends upon local audio setup.
If relying on a built-in area mic such as for a phone or laptop, I would strongly recommend usage of “Push to Talk” (otherwise, it will likely pick up on any background noise). Otherwise, if using a headset (with some noise cancellation) or dedicated microphone (with a pop filter), “Voice Activity” with “Automatically determine input sensitivity” generally works well.
The “Video settings” section below allows you to select an external recording device (such as for face cam), and below that are more advanced audio settings. I generally leave these on the defaults, but experimenting with them may be worthwhile if you are experiencing issues with your voice not being detected (such as disabling “Noise Suppression”, “Noise Reduction”, and/or “Advanced Voice Activity”). For further troubleshooting, I’d recommend Discord’s guide.
This will be the most opinionated part of the guide, and if you are satisfied with the default settings, this part can be safely skipped. However, I personally like to use a compact mode that minimizes extraneous elements (such as profile pictures) to fit more messages on the screen, while still having a font size and spacing large enough to easily read. This is more similar to an IRC style, for those familiar with it.
The UI settings can be accessed by clicking on the user settings gearbox in the lower left and going to “App Settings > Appearance”:
My recommended settings are:
“Message Display”: “Compact”
“Chat font scaling”: 18px
“Space between message groups”: 4px
Of course, this can easily be tweaked as needed to increase font size or spacing based on eyesight, screen resolution, and personal preferences. On smaller resolutions, adjusting the zoom size will make it easier to see more channels at once.
Joining Python Discord¶
Python Discord (the public server where the sprint is being hosted) can be joined through the following perma-link: https://discord.gg/Q87A9Y9.
If you haven’t already, I’d recommend creating a discord account prior to joining, and double-checking that your personal privacy settings are as intended.
When first joining the server, you will see a limited preview until verifying (this is to prevent/limit bot accounts from joining). In order to do so, click on the channel titled “verification”:
Next, simply type “!accept” within the chat and press enter after reading over the server rules (they are very brief and mostly common sense). Welcome to Python Discord!
At this point, if it is before the start of the sprint, you will likely see the standard layout of channels within the server that are viewable by all verified users. Feel free to explore around if you’re curious, notably “python-general”, “advanced-discussion”, and the topical channels might be of interest.
Prior to the sprint, all participants will be granted a sprint participant role on the server that will allow them to see the channels we will be using throughout the sprint. In order to do this, an announcement will be sent out to collect IDs ahead of time, and then a script will be used to automatically grant the role to everyone that provided their ID.
However, for this to work, participants must already be on the server (in order to give them the role). If the sprint has already started or you are joining the server late, reach out directly to an organizer of the event (such as myself, at firstname.lastname@example.org) and we can grant you the role manually after joining.
Renaming categories & creating new channels¶
In order to minimize the total amount of visual clutter while still providing enough channels, we created 5 separate categories that can be reused for different projects. The current naming is based on the sprint projects with the most interested participants, but we’ve provided permissions for participants to easily change the name of each category. This should be done only if there is nobody else present within the voice channels (within the category) and a category for your sprint project is not listed.
Also, “Sprint - Stdlib” and “Sprint - Other” should NOT be renamed. “Stdlib” will contain several channel pairs for each module, and “Other” is used as overflow.
In order to rename a category, simply right click on it and select “Edit Category”. In the center of the screen, the following will appear:
Then, after the “Sprint - “, write the name of your project. For example, if you wanted to work on the PEG parser, it could be renamed to “Sprint - PEG Parser”. Then, press “Save Changes” at the bottom to update the name:
If all sprint project categories have participants in their voice channel(s), instead of renaming a category, a new text/voice channel pair can be added within “Sprint - Other”. This can be done by clicking on the “+” icon to the right of the channel name:
Then, the following menu will appear:
Within this menu, you can add new text or voice channels. For example, for working on Documentation, you might add a text channel titled “documentation” with a corresponding voice channel titled “Documentation”. This is what it would look like:
Note that the permissions will be inherited based on the parent category, so any newly added channels will have the same restrictions to only being viewable by sprint participants (and server admins).
There’s no hard limitation as to the number of channels that can be created, but to keep the total count to a minimum to make things easier to keep track of, we may periodically delete extra channels at the end of the sprint days. So, make sure to record any important information such as meeting notes within the google doc assigned to your project (or create a separate one if there isn’t). The doc for each project can be accessed via Sprint Projects.