PEP: 8107
Title: 2026 Term Steering Council election
Author: Ee Durbin <ee@python.org>
Sponsor: Barry Warsaw <barry@python.org>
Status: Final
Type: Informational
Topic: Governance
Created: 21-Oct-2025


Abstract
========

This document describes the schedule and other details of the
2025 election for the Python steering council, as specified in
:pep:`13`. This is the steering council election for the 2026 term
(i.e. Python 3.15).


Election Administration
=======================

The steering council appointed the
`Python Software Foundation <https://www.python.org/psf-landing/>`__
Director of Infrastructure, Ee Durbin, to administer the election.


Schedule
========

There was be a two-week nomination period, followed by a two-week
vote.

The nomination period was: November 10, 2025 through `November 24, 2025 AoE
<https://www.timeanddate.com/worldclock/fixedtime.html?msg=Python+Steering+Council+nominations+close&iso=20251125T00&p1=3399>`_ [#note-aoe]_.

The voting period was: November 28, 2025 through `December 12, 2025 AoE
<https://www.timeanddate.com/worldclock/fixedtime.html?msg=Python+Steering+Council+voting+closes&iso=20251213T00&p1=3399>`_ [#note-aoe]_.


Candidates
==========

Candidates must be nominated by a core team member. If the candidate
is a core team member, they may nominate themselves.

Nominees (in alphabetical order by first name):

- `Barry Warsaw <https://discuss.python.org/t/steering-council-nomination-barry-warsaw-2026-term/104937>`_
- `Donghee Na <https://discuss.python.org/t/steering-council-nomination-donghee-na-2026-term/104888>`_
- `Gregory P. Smith <https://discuss.python.org/t/steering-council-nomination-gregory-p-smith-2026-term/105011>`_
- `Pablo Galindo Salgado <https://discuss.python.org/t/steering-council-nomination-pablo-galindo-salgado-2026-term/104936>`_
- `Savannah Ostrowski <https://discuss.python.org/t/steering-council-nomination-savannah-ostrowski-2026-term/104989>`_
- `Thomas Wouters <https://discuss.python.org/t/steering-council-nomination-thomas-wouters-2026-term/104954>`_

Withdrawn nominations:

- None

Voter Roll
==========

All active Python core team members are eligible to vote. Active status
is determined as :pep:`described in PEP 13 <13#membership>`
and implemented via the software at `python/voters <https://github.com/python/voters>`_
[#note-voters]_.

Ballots will be distributed based on the `Python Voter Roll
<https://github.com/python/voters/blob/master/voter-files/>`_ [#note-voters]_
for this election.

While this file is not public as it contains private email addresses, the
`Complete Voter Roll`_ by name will be made available when the roll is
created.

Election Implementation
=======================

The election will be conducted using the `BetterVoting
<https://bettervoting.com>`__ service.

.. attention::
   This election will be the first to use
   `Multi-winner Bloc STAR <https://www.starvoting.org/multi_winner>`__
   voting as `approved by the core team <https://discuss.python.org/t/64971>`__
   and `codified <https://github.com/python/peps/pull/3958/files>`__
   into :pep:`13`.


Configuration
-------------

Create a `new election <https://bettervoting.com/new_election>`__.

Poll or Election?: ``Election``

Title?: ``2026 Python Steering Council Election``

Restricted?: ``Yes``

Contact Email: ``psf-election@python.org``

Choose Voters: ``Email List``

This will initialize the election and you will be forwarded to the election admin page.
Further configuration is required.

Click the pencil icon next to the election name on the admin.

Election Description: ``Election for the Python steering council, as specified in PEP 13. This is the steering council election for the 2026 term.``

Enable Start/End Times?: ``Check this box``

Time Zone: ``Baker Island``

Start Date: ``11/28/2025, 12:00 AM``

End Date: ``12/13/2025, 12:00 AM``

Click "Save".

Select ``no limit`` under "Who can vote?" to allow users to return to their ballot from any device or network without a BetterVoting.com account.

Click "Extra Settings"

Check "Randomize Candidate Order".

Check "Allow Voters To Edit Vote".

Ensure "Show Preliminary Results" is unchecked.

Check "Confirm That Voter Read Instructions".

Ensure "Make Election Publicly Searchable" is unchecked.

Ensure "Set Number of Rankings Allowed" is unchecked.

Click "Save".

* Voting is not open to the public, only those on the `Voter Roll`_ may
  participate. Ballots will be emailed when voting starts.
* Candidates are presented in random order, to help avoid bias.

Races
-----

Add Race

Race Title: ``2026 Python Steering Council``

Race Description: ``Rate candidates for the Python Steering Council``

How many Winners?: ``Basic Multi-Winner``

Number of winners: ``5``

Which Voting Method: ``STAR Voting``

Candidates (add each candidate, hyperlink to nomination statement using the 🔗 icon):

- Barry Warsaw 🔗 https://discuss.python.org/t/steering-council-nomination-barry-warsaw-2026-term/104937
- Donghee Na 🔗 https://discuss.python.org/t/steering-council-nomination-donghee-na-2026-term/104888
- Gregory P. Smith 🔗 https://discuss.python.org/t/steering-council-nomination-gregory-p-smith-2026-term/105011
- Pablo Galindo Salgado 🔗 https://discuss.python.org/t/steering-council-nomination-pablo-galindo-salgado-2026-term/104936
- Savannah Ostrowski 🔗 https://discuss.python.org/t/steering-council-nomination-savannah-ostrowski-2026-term/104989
- Thomas Wouters 🔗 https://discuss.python.org/t/steering-council-nomination-thomas-wouters-2026-term/104954

Now, use "Cast test ballot" section to preview the ballot and resolve any misconfigurations.

Voters
------

Enter voter data using Email list from `Voter Roll`_ repository.

Results
=======

Of 106 eligible voters, 74 cast ballots.

The five winners are:

* Pablo Galindo Salgado
* Savannah Ostrowski
* Barry Warsaw
* Donghee Na
* Thomas Wouters

No conflict of interest as defined in :pep:`13` were observed.

The full voting results are:

+-----------------------+-------------+
| Candidate             | Total Stars |
+=======================+=============+
| Pablo Galindo Salgado | 313         |
+-----------------------+-------------+
| Savannah Ostrowski    | 249         |
+-----------------------+-------------+
| Barry Warsaw          | 239         |
+-----------------------+-------------+
| Donghee Na            | 191         |
+-----------------------+-------------+
| Thomas Wouters        | 187         |
+-----------------------+-------------+
| Gregory P. Smith      | 173         |
+-----------------------+-------------+

Tabulation Steps
----------------

Winner 1
^^^^^^^^

*Scoring Round*: Pablo Galindo Salgado and Savannah Ostrowski advance to runoff with 313 and 249 stars.

*Automatic Runoff*: Pablo Galindo Salgado is preferred over Savannah Ostrowski, 36 to 19, with 19 voters showing equal support for both finalists.

Winner 2
^^^^^^^^
*Scoring Round*: Savannah Ostrowski and Barry Warsaw advance to runoff with 249 and 239 stars.

*Automatic Runoff*: Savannah Ostrowski is preferred over Barry Warsaw, 34 to 29, with 11 voters showing equal support for both finalists.

Winner 3
^^^^^^^^

*Scoring Round*: Barry Warsaw and Donghee Na advance to runoff with 239 and 191 stars.

*Automatic Runoff*: Barry Warsaw is preferred over Donghee Na, 38 to 25, with 11 voters showing equal support for both finalists.

Winner 4
^^^^^^^^

*Scoring Round*: Donghee Na and Thomas Wouters advance to runoff with 191 and 187 stars.

*Automatic Runoff*: Donghee Na is preferred over Thomas Wouters, 36 to 33, with 5 voters showing equal support for both finalists.

Winner 5
^^^^^^^^

*Scoring Round*: Thomas Wouters and Gregory P. Smith advance to runoff with 187 and 173 stars.

*Automatic Runoff*: Thomas Wouters is preferred over Gregory P. Smith, 34 to 26, with 14 voters showing equal support for both finalists.


Complete Voter Roll
===================

Active Python core developers
-----------------------------

.. code-block:: text

    Adam Turner
    Alex Gaynor
    Alex Waygood
    Alexander Belopolsky
    Alyssa Coghlan
    Ammar Askar
    Andrew Svetlov
    Antoine Pitrou
    Armin Ronacher
    Barney Gale
    Barry Warsaw
    Batuhan Taskaya
    Bénédikt Tran
    Benjamin Peterson
    Berker Peksağ
    Brandt Bucher
    Brett Cannon
    Brian Curtin
    C.A.M. Gerlach
    Carl Meyer
    Carol Willing
    CF Bolz-Tereick
    Cheryl Sabella
    Chris Withers
    Dennis Sweeney
    Diego Russo
    Dino Viehland
    Donghee Na
    Emily Morehouse
    Emma Smith
    Éric Araujo
    Eric Snow
    Eric V. Smith
    Erlend Egeberg Aasland
    Ethan Furman
    Ezio Melotti
    Facundo Batista
    Filipe Laíns
    Giampaolo Rodolà
    Gregory P. Smith
    Guido van Rossum
    Hugo van Kemenade
    Hynek Schlawack
    Inada Naoki
    Irit Katriel
    Ivan Levkivskyi
    Jack Jansen
    Jason R. Coombs
    Jelle Zijlstra
    Jeremy Hylton
    Jeremy Kloth
    Jesús Cea
    Joannah Nanjekye
    Julien Palard
    Ken Jin
    Kirill Podoprigora
    Kumar Aditya
    Kurt B. Kaiser
    Kushal Das
    Larry Hastings
    Lisa Roach
    Łukasz Langa
    Lysandros Nikolaou
    Marc-André Lemburg
    Mariatta
    Mark Hammond
    Mark Shannon
    Matt Page
    Matthias Klose
    Meador Inge
    Michael Droettboom
    Nathaniel J. Smith
    Ned Batchelder
    Ned Deily
    Neil Schemenauer
    Nikita Sobolev
    Pablo Galindo
    Paul Ganssle
    Paul Moore
    Peter Bierma
    Petr Viktorin
    Pradyun Gedam
    R. David Murray
    Raymond Hettinger
    Ronald Oussoren
    Russell Keith-Magee
    Sam Gross
    Sandro Tosi
    Savannah Ostrowski
    Senthil Kumaran
    Serhiy Storchaka
    Shantanu Jain
    Stefan Behnel
    Steve Dower
    Terry Jan Reedy
    Thomas Wouters
    Tian Gao
    Tim Golden
    Tim Peters
    Tomas Roun
    Trent Nelson
    Victor Stinner
    Vinay Sajip
    Xiang Zhang
    Yury Selivanov
    Zachary Ware


Copyright
=========

This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive.


.. [#note-voters] This repository is private and accessible only to Python Core
   Developers, administrators, and Python Software Foundation Staff as it
   contains personal email addresses.
.. [#note-aoe] AoE: `Anywhere on Earth <https://www.ieee802.org/16/aoe.html>`_.
