At the end of the Spring Festival holidays, we have gradually returned to the original track of life. Holiday is a good opportunity for rest and adjustment. At the same time, the Spring Festival also has the intention of leaving the old to welcome the new. It is the beginning of the new cycle.
In the Python community, a major event has just taken place, and it is also of great significance to usher in a new era: after Guido van Rossum, the father of Python, announced his resignation from BDFL (lifelong benevolent dictator), core Python developers, after more than half a year, finally elected the first “ruling member” for the new governance scheme.
On February 4, after a two-week vote, the Python community elected five members of the first Steering Committee: Barry Warsaw, Brett Cannon, Carol Willing, Guido van Rossum and Nick Coghlan.
Some time ago, I reviewed the resignation of Python’s father, translated a summary of various governance proposals, and analyzed the voting intentions of core developers (PS: See through the links at the end of the article). This article is a follow-up report of the incident, but also a phased end. With the confirmation of the members of the first Steering Committee, the Python community will usher in a new and stable transition period. The purpose of this article is to announce the good news to Python developers/learners/enthusiasts.
It is a matter of great concern that the autonomous model of core developers has undergone such a significant change. The future direction of Python community is closely related to this, and the success or failure of this governance model will also provide an excellent reference for other technology communities.
1. What is the Steering Committee?
As for the Steering Council, it was the latest of the seven governance schemes, but it was the most widely accepted one, and finally voted to become a new governance scheme in the community. The governance plan uses a five-member Steering Committee as the top decision-making level and allows delegation of decision-making authority to other teams or developers when necessary.
The Steering Committee has supreme powers, but its principles are boring, simple, comprehensive, flexible and light-weight. Specifically, it sets a series of basic, clear, flexible, light weight rules and processes to “guide” community governance.
Steering committees can directly exercise certain powers, such as approving or rejecting PEPs, updating codes of conduct for projects, managing project assets with software foundations, etc. However, excessive driving power is not encouraged. The key difference between the Steering Committee and other governance proposals is that it will play the role of rule-maker, guide, and coordinate community work, and will exercise final adjudication only at critical moments.
The functions of the Steering Committee are:
- Maintain the quality and stability of the Python language and CPython interpreter, maintain the quality and stability of Python language and CPython interpreter
- Make contributions as accessible, inclusive, and sustainable as possible to make contributions as convenient, inclusive and sustainable as possible
- Formalize and maintain the relationship between the core team and the PSF to consolidate the relationship between the core team and the Python Software Foundation
- Establish appropriate decision-making processes for PEPs to establish appropriate decision-making processes for PEPs
- Seek consensus among contributors and the core team before acting in a formal capacity to seek consensus between contributors and core teams
- Act as a “court of final appeal” for decisions where all other methods have failed, playing the role of a “court of final appeal” when all other methods fail
This governance model is based on the Django project. See PEP-13 for details.
2. Members of the Steering Committee?
The Steering Committee has a fixed membership of five and allows up to two people to come from the same enterprise. Frequency of renewal is every Python release. Members may be re-elected. Support a vote of no confidence (impeachment).
Now let’s look at the first elected members:
- Barry Warsaw: Since 1995, he has been one of the core developers and won the Frank Willison Memorial Award in 2014. Currently working for LinkedIn (acquired by Microsoft, or Microsoft), hobbies are music and Taiji.
- Brett Cannon: Since 2003, he has been one of the core developers and won the Frank Willison Memorial Award in 2016. He has served as Executive Vice President of the Python Software Foundation. Currently working for Microsoft, responsible for the Python plug-in project of VSCode.
- Carol Willing: Python Core Developer, Jupyter Core Developer and Jupyter Steering Committee member. Free profession, interest in scientific research and education projects.
- Guido van Rossum: The founder of Python, known as the “father of Python”, led the development of the Python community for a long time until the abdication storm. He currently works in Dropbox.
- Nick Coghlan: One of the core developers since 2005. He currently works in Tritium.
Note: Frank Willison Memorial Award, established by O’Reilly Publishing Group, is awarded to individuals who have made outstanding contributions to the Python community. Established in 2002, it is promulgated annually.
These members have been senior core developers for many years and have contributed a lot to Python’s development. Most noteworthy of all, of course, is Guido van Rossum, who has not left the decision-making level. In fact, Guido is a self-recommended candidate and one of the first 17 candidates to recommend or be nominated.
After being elected, everyone else forwarded good news on Twitter, and Guido didn’t say a word. This leaves a mystery: what considerations did Guido decide to return to decision-making, and what role would he play?
3. Development of Open Source Technology Projects?
It does not seem difficult to launch an open source technology project, but it is too difficult to extend it to the broad technical community, create a complete technological ecology, and continue to operate healthily.
Today, I see a news: Bootstrap 5 will completely remove the dependence on jQuery. I can’t help recalling that half a year ago, Github also announced the complete abandonment of jQuery. JQuery is a well-known front-end open source project. A few years ago, the whole country flourished. However, with the rise of MVVM framework, it has reached the end of the road.
This reveals the first difficult problem in the development of technology projects: to maintain the leading edge of technology. In recent years, Python has become a popular target for many developers because of its outstanding achievements in artificial intelligence and scientific computing. For my followers and others, it’s a pleasure to hear. Optimistically, Python will at least not fall for technical reasons.
Last year, another big thing happened in the technology community: Linus Torvalds, the father of Linux, announced an indefinite vacation. Compared with the abdication of Python’s father, the news caused much more sensation.
The similarities between these two events have aroused my curiosity: how can open source technology projects continue to operate healthily when the souls that they rely heavily on leave?
For me and other small marginal farmers, this topic is beyond the scope of ability and can not be answered. Fortunately, they returned. But for the core developers, sooner or later, this topic has to face, the current storm is an early warning.
What changes will be brought about by Python Community’s Steering Committee Governance Program and where will it lead the community? Rub one’s eyes and wait.
What’s happening now concerns all Python developers…
This article was originally published on the Wechat Public Number (Python Cat). Backstage reply “Love Learning” and get 20 + selected e-books free of charge.