New Governance Model For Python
Written by Mike James   
Friday, 21 December 2018

After Guido van Rossum abdicated his role as Python's leader who had ultimate authority on all decisions relating to the language, some alternative way to run the project became necessary. After a protracted, democratic, process Python will in future be governed by a five-person Steering Council.


Python was originally developed, starting in 1990, by one person, Guido van Rossum who then led the project as it expanded and attained the popularity it has today. Given the title "Benevolent Dictator For Life" (BDFL), he had the final say on all decisions, great or small, a responsibility that suddenly proved too much to bear in July 2018 with the last straw being a proposal, PEP 572, to include assignment expressions in Python 3.8, see Guido van Rossum Quit As Python BDFL.

In quitting the leadership role he had filled for almost 30 years van Rossum stated:

"Now that PEP 572 is done, I don't ever want to have to fight so hard for a PEP and find that so many people despise my decisions." 

So how was Python to be managed in future? With the community already divided over an issue of programming style, how could decisions about a new governance model be made?

As van Rossum hadn't appointed a successor it was down to CPython's core developers to come up with ideas and choose between them.

In all there were seven proposals, which were outlined in PEP 8000 along with PEP 8001 detailing the Condorcet voting process that was adopted for choosing between them in a voting period that ran from December 1st to 16th and required those eligible to vote to rank the proposals in order of preference. 

The proposals ranged from various forms of community governance to appointing a single individual as the Technical Leader - in effect a new Benevolent Dictator but now with the acronym GUIDO standing for "Gracious Umpire Influencing Decisions Officer" and serving for three Python releases, approximately 4.5 years. There were also proposals for a Trio of Pythonistas, an External Council and a Council of Elders. In the end, it was the final model proposed, in  PEP 8016 -- The Steering Council Model by Nathaniel J. Smith and Donald Stufft, that emerged as the clear winner.

The Steering Council will be made up of five individuals and will serve for a single feature release, after which a new council will be elected. Council members may resign at any time and if a member loses contact for more than a month can be replaced. To avoid conflicts of interest only two members of the council can work for a single employer.

A council election consists of two phases:

  • Phase 1: Candidates advertise their interest in serving. Candidates must be nominated by a core team member. Self-nominations are allowed.
  • Phase 2: Each core team member can vote for zero to five of the candidates. Voting is performed anonymously. Candidates are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random.

Once elected the Council has the mandate to:

  • Maintain the quality and stability of the Python language and CPython interpreter,
  • Make contributing as accessible, inclusive, and sustainable as possible,
  • Formalize and maintain the relationship between the core team and the PSF,
  • Establish appropriate decision-making processes for PEPs,
  • Seek consensus among contributors and the core team before acting in a formal capacity,
  • Act as a "court of final appeal" for decisions where all other methods have failed.

The council has broad authority to make decisions about the project. For example, they can:

  • Accept or reject PEPs
  • Enforce or update the project's code of conduct
  • Work with the PSF to manage any project assets
  • Delegate parts of their authority to other subcommittees or processes

More details can be found in PEP 8016 and if you are interested in the vote itself, the results are available.

Python is as it is because of the way it was governed.

Python now governed by a committee  - what could possibly go wrong with that?



  • Mike James is the author of Programmer's Python: Objects & Attributes, the first volume in his Programmer's Python: Something Completely Different series.


More Information

PEP 8016 -- The Steering Council Model

Python Governance Vote (December 2018): Results

Related Articles

Guido van Rossum Quits As Python BDFL 

Python Passion For Assignment Expressions - PEP 572

Python Development Trends

What Makes Python Special?

Python 3.7 Released

Python's Unstoppable Rise

Python The Future Of Programming?

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Udacity's New Discovering Ethical AI Course

Udacity has just launched an hour-long course on Ethical AI. Intended for a wide audience across many industries, it introduces to basic concepts and terms needed to step into the world of Ethica [ ... ]

The Appeal of Google Summer of Code

With the list of participating organizations now published, it is time for would-be contributors to select among them and apply for Google Summer of Code (GSoC). Rust has joined in the program fo [ ... ]

More News

raspberry pi books



or email your comment to:


Last Updated ( Monday, 06 May 2019 )