|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:
Once elected the Council has the mandate to:
The council has broad authority to make decisions about the project. For example, they can:
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?
or email your comment to: firstname.lastname@example.org
|Last Updated ( Monday, 06 May 2019 )|