Following Python’s Development#

Python’s development is communicated through a myriad of ways, mostly through mailing lists, but also other forms.

Standards of behaviour in these communication channels#

We try to foster environments of mutual respect, tolerance and encouragement, as described in the PSF’s Diversity Statement. Abiding by the guidelines in this document and asking questions or posting suggestions in the appropriate channels are an excellent way to get started on the mutual respect part, greatly increasing the chances of receiving tolerance and encouragement in return.

Mailing Lists#

python-dev is the primary mailing list for discussions about Python’s development. The list is open to the public and is subscribed to by all core developers plus many people simply interested in following Python’s development. Discussion is focused on issues related to Python’s development, such as how to handle a specific issue, a PEP, etc.

  • Ideas about new functionality should not start here and instead should be sent to python-ideas.

  • Technical support questions should also not be asked here and instead should go to python-list or python-help.

Python-ideas is a mailing list open to the public to discuss ideas on changing Python. If a new idea does not start here (or python-list, discussed below), it will get redirected here.

Sometimes people post new ideas to python-list to gather community opinion before heading to python-ideas. The list is also sometimes known as comp.lang.python, the name of the newsgroup it mirrors (it is also known by the abbreviation c.l.py).

The python-committers mailing list is a private mailing list for core developers (the archives are publicly available). If something only affects core developers (e.g., the tree is frozen for commits, etc.), it is discussed here instead of python-dev to keep traffic down on the latter.

python-dev, python-committers, and python-ideas all use Mailman 3, and are hence accessible via the Mailman 3 web gateway.

Python-checkins sends out an email for every commit to Python’s various repositories from https://github.com/python/cpython. All core developers subscribe to this list and are known to reply to these emails to make comments about various issues they catch in the commit. Replies get redirected to python-dev.

There are two mailing lists related to issues on the issue tracker. If you only want an email for when a new issue is open, subscribe to new-bugs-announce. If you would rather receive an email for all changes made to any issue, subscribe to python-bugs-list.

General Python questions should go to python-list or tutor or similar resources, such as StackOverflow or the #python IRC channel on Libera.Chat.

The core-workflow issue tracker is the place to discuss and work on improvements to the CPython core development workflow.

A complete list of Python mailing lists can be found at https://mail.python.org/mailman/listinfo. Most lists are also mirrored at GMANE and can be read and posted to in various ways, including via web browsers, NNTP newsreaders, and RSS feed readers.

Discourse (discuss.python.org web forum)#

We have our own Discourse forum for both developers and users. This forum complements the python-dev, python-ideas, python-help, and python-list mailing lists.

This forum has different categories and most core development discussions take place in the open forum categories for PEPs and Core Development (these are the Discourse equivalents to the python-dev mailing list). All categories are open for users to read and post with the exception of the Committers category, where posting is restricted to the CPython core developers.

The Committers category is often used for announcements and notifications. It is also a common venue for the core developer promotion votes (this category is equivalent to the python-committers mailing list).

Tutorials for new users#

To start a topic or participate in any discussions in the forum, sign up and create an account using an email address or GitHub account. You can do so by clicking the “Sign Up” button on the top right hand corner of the Discourse main page.

The Python Discourse Quick Start compiled by Carol Willing gives you a quick overview on how to kick off Python Discourse.

We recommend new users getting familiarised with the forum by going through Discobot tutorials. These tutorials can be activated by replying to a welcome message from “discourse Greetings!” received under Notifications and Messages in your user account.

  • Click on your personal account found on the top right hand corner of the page.

  • The dropdown menu will show four different icons: 🔔 (Notifications), 🔖 (Bookmarks), ✉️ (Messages), and 👤 (Preferences).

  • Select either Notifications or Messages.

  • Open the “Greetings!” message sent by Discobot to start the tutorial.

Ensure that you read through the Python Code of Conduct. We are to be open, considerate and respectful to all users in the community. You can report messages that don’t respect the CoC by clicking on the three dots under the message and then on the ⚐ icon. You can also mention the @staff, @moderators, or @admins groups in a message.

Reading topics#

Click a topic title and read down the list of replies in chronological order, following links or previewing replies and quotes as you go. Use your mouse to scroll the screen, or use the timeline scroll bar on the right which also shows you how far through the conversation you’ve read. On smaller screens, select the bottom progress bar to expand it.

Notifications#

Following categories (Category notifications)#

Notifications can be set for individual categories and topics. To change any of these defaults, you can either go to your user preferences, or visit the category page, and use the notification button 🔔 above the topic list, on the top right hand corner of the category page beside the “+ New Topic” button.

Clicking on the Notification control 🔔 will show a drop-down panel with 5 different options: Watching, Tracking, Watching First Post, Normal, and Muted. All categories are set by default in Normal mode where you will only be notified if someone mentions your @name or replies to you.

Following individual threads (Topic notifications)#

To follow any individual topics or threads, you can adjust your notifications through the notification button 🔔 found on the right of the topic at the end of the timeline. You can also do so at the bottom of each topic. Select “Watching” and you will be notified when there is any new updated reply from that particular thread.

Customising notifications on user preference#

To get a bird’s eye view of all your customised notifications, you can go to Preferences of your account. This allows you to make adjustments according to categories, users, and tags.

Enabling mailing list mode#

In mailing list mode, you will receive one email per post, as happens with traditional mailing lists. This is desirable if you prefer to interact via email, without visiting the forum website. To activate the mailing list mode, go to the email preferences, check “Enable mailing list mode” and save changes.

Discord (private chat server)#

For more real-time discussions, the core development team have a private Discord server available. Core developers, Steering Council members, triagers, and documentarians on the project are eligible to join the server. Joining the Discord server is entirely optional, as all essential communications occur on the mailing lists and Discourse forums.

For core developers, a long lived multiple use invitation link for this server can be found in the private core developer only section of the Discourse forum.

For triagers and documentarians joining the Discord server, a single use invitation link should be generated and sent to them directly.

When first joining the server, new users will only have access to the #welcome and #rules-and-info channels. To link their Discord ID with their project role, core developers may update their Steering Council 🔒 voter record with their Discord ID before posting in the #welcome channel to request access to the rest of the server channels. Triagers, documentarians, and core developers that would prefer not to add their Discord ID to their Steering Council voter record may instead be vouched for by an existing member of the Discord server.

As a private, non-archived, forum, final decisions on design and development questions should not be made on Discord. Any conclusions from Discord discussions should be summarised and posted to the issue tracker, Discourse forum, or mailing list (the appropriate venue for sharing conclusions will depend on the specific discussion).

Note: existing Discord users may want to right click on their username in the automatic Discord welcome message and choose “Edit Server Profile” in order to set a specific Server Nickname

IRC#

Some core developers still participate in the #python-dev IRC channel on irc.libera.chat. This is not a place to ask for help with Python, but to discuss issues related to Python’s own development. See also the #python-dev-notifs channel for bots notifications.

Blogs#

Several core developers are active bloggers and discuss Python’s development that way. You can find their blogs (and various other developers who use Python) at https://planetpython.org/.

Setting Expectations for Open Source Participation#

Burn-out is common in open source due to a misunderstanding of what users, contributors, and maintainers should expect from each other. Brett Cannon gave a talk about this topic that sets out to help everyone set reasonable expectations of each other in order to make open source pleasant for everyone involved.

Additional Repositories#

Python Core Workflow hosts the codebase for tools such as cherry_picker and blurb.

Python Performance Benchmark project is intended to be an authoritative source of benchmarks for all Python implementations.