With Python founder Guido Van Rossum having stepped aside from his role as the steward of the language, Python participants have selected a steering council model to guide the language’s development going forward. Developers, though, may not notice much difference in how the language actually evolves.
The council’s mandate is to maintain the quality and stability of the language as well as the Python Software Foundation’s CPython interpreter. It also will establish decision-making processes and maintain the relationship between the core team and the foundation.
Even with the new steering council, the process under which the language evolves is not expected to change much, said Python developer Nathaniel Smith, co-author of the steering council proposal. Python has never had a top-down roadmap, having been driven by proposals from individuals concerned with a particular issue, which are then discussed by the whole community. Van Rossum has served as a referee and provided advice, Smith said.
Under the council mandate, contributing to Python is to be made as accessible as possible. Once the council is formed, consensus is to be sought among contributors and the core team before the council acts in a formal capacity. The council will act as a court of final appeal for decisions. Although the council will have broad authority, the intent is to exercise this authority as rarely as possible. This power will be used to establish standard processes. Powers of the council include:
- Accepting or rejecting enhancement proposals.
- Enforcing or updating the project’s code of conduct.
- Working with the foundation to manage project assets.
- Delegating some authority to other subcommittees or processes.
No deternination has been made as to who will be the first to serve on the five-member council. An election is expected in earluy January 2019, with core team members voting. The council would be seated in February 2019. Candidates must be nominated by a core team member.
The selection of the steering council format itself was made under the guise of the foundation. Authorized voters included CPython core developers. Voting took place in December 2018. Other governance proposals considered included:
- A technical leader model, continuing the single-leader paradigm.
- A model in which the language would be lead by a trio of “Pythonistas,” – fervent users of the language.
- A community governance model, in which there would be no single leader or governing council.
- External governance, in which a council of auditors would review controversial decisions in the form of enhancement proposals written by the core development team.
- Commons governance, with a council of elders responsible for ensuring an enhancement proposal was supported by a sufficient majority of the Python community before being accepted.
- Organization of the Python community, in which Python teams would have more autonomy and a three-person board deciding to approve or reject enhancements.