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.

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)

The Committers category restricts posting to core developers only, and is used more for announcements and notifications, rather than for discussions. It is also the venue for core developer promotion votes. (This category is the equivalent of the python-committers mailing list)

There is a final, rarely used, core development category on Discourse that is only visible to core developers. This can be used to share administrative information with all core developers in a non-public forum (e.g. logistics for in person core development sprints), as well as for individual core developers to share info that they’d like other core devs to be aware of, but would prefer not to have permanently archived on the internet.

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.