How does the governance of an open-source project built on the “benevolent dictator” model survive when the dictator abdicates his role? That is the question that the Python community has faced since last July when Guido van Rossum announced a forthcoming transfer of power:

I would like to remove myself entirely from the decision process….

I am not going to appoint a successor.

So what are you all going to do? Create a democracy? Anarchy? A dictatorship? A federation?

First, the community had too choose the process for choosing the successor. This discussion took place on the Python committers’ Discourse instance in this thread debating the merits of various voting systems. (For more on this topic, see these slides from Vincent Conitzer.) The method that was chosen (described in PEP 8001) was to use the Condorcet method and have a re-vote in the case of a tie or cycle.

The winner was declared on December 16 with “The Steering Council Model” as the clear winner (PEP 8016). The steering council will be focused on ensuring the stability and quality of Python going forward.

Another election will be held this month to select council members. Each member of the Python core team can submit up to five votes for the candidates, and the five candidates with the most votes will be the winners.

Overall this process has gone very smoothly (from the perspective of an outside observer) and demonstrates the ability of all involved to conduct careful deliberation. This serves as a model for other projects that may one day undergo a similar transition.