How to join the core team

Python Developer's Guide

What it takes

When you have consistently made contributions which meet quality standards without requiring extensive rewrites prior to being committed, you may qualify for commit privileges and join the core team of Python. You must also work well with other core team members (and people in general) as you become an ambassador for the Python project.

Typically a core team member will offer you the chance to gain commit privilege. The person making the offer will become your mentor and watch your commits for a while to make sure you understand the development process. If other core developers agree that you should gain commit privileges you are then extended an official offer. How core team members come to that agreement are outlined in

PEP 13

.

Gaining commit privileges

After a candidate has demonstrated consistent contributions, commit privileges are granted through these steps:

A core team member (submitter, usually the mentor) starts a poll (see the

template

below) with the

Promotion tag in the Committers category

on the

Python Discourse

.

open for 7 days

results shown only upon closing

If the candidate receives at least two-thirds positive votes when the poll closes (as per

PEP 13

), the submitter

emails the steering council

with the candidate’s email address requesting that the council either accept or reject the proposed membership. Technically, the council may only

veto a positive vote

.

Assuming the steering council does not veto the positive vote, a member of the council or its delegate (approver, usually in practice a

Developer-in-Residence

) will email the candidate:

A request for account details as required by

🔒 python/voters

.

A reminder about the

Code of Conduct

and guidance on reporting issues to the PSF Conduct WG.

Once the candidate has provided the pertinent details, the approver will:

Enable new permissions for the new committer, and remove redundant ones if applicable. If you don’t have admin rights, ping the given contact.

Service

Add to

Remove from

Contact

GitHub

@python/python-core

@python/python-triage

@python/organization-owners

Discourse

committers

admins

Core Discord

“Core Developer”

“Triager”

@ServerAdmin

Docs Discord

“Core Team”

@encukou (Petr)

@justbinary (Stan)

(Some of these are unofficial spaces managed as a courtesy. Adjust the list to taste.)

Add their details to

🔒 python/voters

.

Once the python/voters update is merged, regenerate the public team membership list at

Team log

. See “Public list of members” in the voters README.

Post an announcement to the Discourse topic with the promotional poll. The topic should be in the

Promotion tag in the Committers category

.

Getting a python.org email address

Members of the core team can get an email address on the python.org domain. For more details refer to the

python.org email policy

.

Poll template

While Discourse uses Markdown for formatting, the poll functionality is custom and somewhat resembles BBcode. There’s a creator for polls in the UI (click the cog icon in the edit box toolbar and choose “Build Poll”). Here’s what it outputs, you can copy and paste it for your poll:

[polltype=regularresults=on_closepublic=falsechartType=bargroups=committersclose=2024-07-15T21:15:00.000Z] * Promote Basil Fawlty * Do not promote [/poll]The important options in the poll builder set to get this result:

Show who voted: disabled (public=false)

Limit voting to these groups: committers (groups=committers)

Automatically close poll: in 7 days (close=...)

Show results: When poll is closed (results=on_close)