Google Disturbs the Python Community?!
Core Developers Forced to Leave After 30 Years, Even the Father of Python Can Be Found in Violation
Chaos in the Python Community After Core Developer Suspended
Recently, the Python Steering Council (SC) abruptly announced a decision that plunged the related community into confusion. The decision stated that an unnamed core developer of Python would be suspended for three months.
In light of the mystery, Tim Peters came forward to admit he was the developer mentioned, confirming suspicions among many community members. Peters has been involved since the early days of Python, contributing to many important projects and being the author of PEP 20 (The Zen of Python). His suspension stems from a violation of the project’s code of conduct, linked to a series of controversial discussions in mid-June regarding changes to the Python Software Foundation (PSF) bylaws.
Announcement Link: https://policies.python.org/python.org/code-of-conduct/
Not only was Peters suspended for violating community standards, but even an article by Guido van Rossum, the “benevolent dictator for life” of Python, was deleted for the same reason.
These incidents sparked intense reactions within the Python community. Many members expressed their discontent regarding the treatment of these significant contributors to the Python language.
Users on Hacker News actively commented on the current culture within the Python community, questioning who exactly makes up the so-called “Steering Council” and why their influence appears to outweigh that of the individuals who essentially created the Python language and community.
The Python community’s Steering Council was the last of seven governance proposals but became the most adopted, ultimately being voted in as the new governance model. This model features a five-member Steering Council as the highest decision-making body and allows for the delegation of decision-making authority to other teams or developer representatives when necessary.
The Steering Council holds significant power, but its principles involve guiding community governance through a set of foundational, clear, flexible, and lightweight rules and processes.
The council can exercise certain powers directly, such as approving or rejecting PEPs, updating the project’s code of conduct, and managing project assets alongside the software foundation. However, excessive exercise of authority is discouraged. The key difference between the Steering Council and other governance proposals is its role as a rule-maker, guiding, directing, and coordinating community efforts, only exercising final authority in critical situations. The functions of the Steering Council are to:
- Maintain the quality and stability of the Python language and CPython interpreter
- Make contributions as convenient, inclusive, and sustainable as possible
- Strengthen the relationship between the core team and the Python Software Foundation
- Establish appropriate decision-making processes for PEPs
- Seek consensus among contributors and the core team
- Serve as the “final court of appeal” when all other methods fail
This governance model is inspired by the Django project.
The Steering Council consists of 5 fixed members, with a maximum of two from the same company. Elections are held with each Python release, and members can serve multiple terms. There is a provision for a vote of no confidence (i.e., impeachment).
The first elected members include:
- Barry Warsaw: A core developer since 1995, recipient of the Frank Willison Memorial Award in 2014.
- Brett Cannon: A core developer since 2003, recipient of the Frank Willison Memorial Award in 2016. Former executive vice president of the Python Software Foundation.
- Carol Willing: A core developer of Python, core developer of Jupyter, and a member of the Jupyter Steering Council. Freelance with interests in research and education projects.
- Guido van Rossum: The founder of Python, known as the “father of Python,” who has long led the development of the Python community.
- Nick Coghlan: A core developer since 2005.
The current Steering Council members include:
- Gregory P. Smith: A leader in the Python ecosystem and a core contributor to CPython, previously worked in Google’s language, optimization, and library team. A former Google employee revealed that Smith mainly worked in administration at Google and speculated he might be a key instigator in the Tim Peters incident.
- Emily Morehouse: A core developer of Python, co-founder and engineering director of software development company Cuttlesoft.
- Pablo Galindo Salgado: A core developer of Python, a member of the Steering Council, and the release manager for Python versions 3.10 and 3.11.
- Barry Warsaw: A core developer of Python with 30 years of experience in the language, recently joined NVIDIA as the chief system software engineer for the open-source Python ecosystem.

- Thomas Wouter: A leader in the Python ecosystem with over 20 years of Python development experience, previously served on the board of the Python Software Foundation and as the release manager for Python 3.12 and 3.13. He was a software engineer at Google, part of the team maintaining CPython and internal Python infrastructure.
Among the five members of the Steering Council, two are from Google, leading some Hacker News users to comment that they have brought Google’s strict internal scrutiny into the community:
“This is what happens when Google employees gain power. They are so accustomed to having Google’s review system forced down their throats that they think it’s normal everywhere they go.”
Others argue that the current state of the Python community stems from an irreconcilable conflict between technical staff and management:
“The world isn’t fair. No matter who people are, their fates are determined by political forces.
Over the years, I’ve seen some very picky individuals and even picky teams get collectively laid off, only to be replaced by less capable people. The world moves on. Products and projects suffer for a time, and many even completely disappear. But that’s what those in power want, and they can accept it.
My experience tells me that unless the entire leadership changes now, Tim won’t get much respect there (even if he returns). I can assure you that others will face the same level of disrespect and open humiliation. Once toxic management/leadership emerges, your only choice is to leave and find a place that respects others.
I’m sure their foundation has made a lot of money. They have to present themselves in a certain way to continue making more money. When large sums are involved, they don’t care who is important or how important they are; they are likely to make big profits.
This is the standard evolutionary arc of the political hierarchy in most tech companies. Once a product is successful, profits roll in. Management takes over. They decide engineers are no longer needed, showing disrespect for employees. They drive away talent. They poison the entire culture and continue to extract more money. Ultimately, this system dies out, and they move on to the next company to squeeze the next pound of flesh.”
Many more Hacker News users are worried that the Python language is in decline, which could be catastrophic for many projects built on Python, and suggest people consider a safer language:
“Reading this really makes me worry about long-term support for anything built on Python. It gives the impression of a self-destructing, dying community. Will Python perish compared to Rust and Go? In the field of completed code, new languages seem like a safer choice, such as Rust.”
The dissatisfaction and concerns among developers seem to be illuminated by the incident involving Tim Peters’s dismissal.
02 Complete Event Retrospective
2.1 Controversy Over Terms Change
The proposed amendments to the bylaws were evidently discussed on the non-public PSF mailing list (psf-vote), but the relevant information was almost simultaneously released on the Python forum’s PSF channel. Out of three proposed changes, only one sparked significant discussion on the forum, which concerned the manner in which PSF researchers could be removed for violating the code of conduct. PSF researchers, like other community members, are respected for their “extraordinary contributions and influence on Python, the community, and the broader Python ecosystem.”
The announcement of the proposal emphasized the removal of researcher status. In principle, researchers would receive lifetime PSF membership, but the amended terms stipulate that “any PSF member may be removed once they violate any written policy of the foundation, especially our code of conduct.” The wording of the proposal does not even require a two-thirds majority among PSF members (including all researchers) for removal; it only needs a majority vote from the PSF board. According to the announcement released in mid-July, all three proposed changes passed easily, though the support rate for the contentious amendment was notably lower than for the other two.
Peters and others’ main objection was that the simple majority threshold set was too low. Peters, who has 12 years of board experience, argued that since almost all board decisions require unanimous consent, it would also be reasonable to require unanimous approval (or at least a two-thirds majority) for the removal of researchers. The meeting engaged in a lengthy discussion from multiple angles about why some members felt a simple majority might not be appropriate, especially given concerns about future malicious tendencies within the PSF board. Others felt that such expectations were too extreme.
During the discussion, a considerable number of participants supported the change, but those opposing (or at least questioning) it were actively posting their arguments. Ultimately, board member Christopher Neugebauer made a decisive statement, indicating that any amendments to the proposed changes involved organizational issues, and therefore the proposal to increase the required votes for approval would need to be discussed at the next board elections in a year.
It appeared that people generally agreed there should be a way for the board to remove researchers; even without this amendment, the board could use its existing power to remove other types of members, as researchers had long enjoyed a sort of “get-out-of-jail-free card.” Some participants in the discussion believed that an absolute majority (such as two-thirds) might be a better idea, but that it could be addressed through later amendments; currently, the best approach would allow for the removal of misconducting researchers without requiring a public vote among all PSF members. The entire dialogue lasted about two weeks, with around 175 posts — while the discussions were generally lengthy, the atmosphere remained quite friendly and was not dominated by vitriol or anger. Such disagreements were not unusual, as the Python community has had a history of open debates over many years, whether in mailing lists or elsewhere.
Peters was an active participant in the discussions on this topic, and perhaps overly enthusiastic, he began another thread discussing the legal advice and related ideas received by the PSF board regarding these changes. The discussion became quite extensive and often diverged in multiple directions, with many posts quickly straying off-topic. Some posts were flagged by readers, leading to temporary hiding by the Discourse forum software, which in turn led to complaints that dissenting opinions were being suppressed. Eventually, a moderator switched the discussion to slow mode, hoping to guide it back on track.
In the final stages of the discussion, Neugebauer published a FAQ from the board that specifically addressed various issues raised during the dialogue. While it was neither appropriate nor possible to lay things bare, the content of the FAQ suggested that there was a growing sense that the board was considering removing some researchers. A current began to surface in the discussions, pointing towards those who, linked to PSF through their researcher status, may come from outside the Python domain and had violated the code of conduct. Steering Committee member Thomas Wouters stated that he had seen “sufficient evidence that some researchers have repeatedly flouted the code of conduct.” In another “case,” Alan Vezina outlined a scenario of a code of conduct violation, although the details were hypothetical, they were “similarly based on real events.”
2.2 Statement from the Steering Committee
On July 11, after the discussion on the proposed changes had begun to subside, Gregory P. Smith released a statement from the Steering Committee titled “Expecting More Inclusive Communication in the Python Community.” The article stated that during the discussions:
“… we witnessed some disturbing and unprofessional dialogues involving several prominent individuals. These comments alienated many members within the community from each other and hindered others from joining and becoming part of Python’s future ecosystem.”
Next, a series of examples were listed that were clearly aimed directly at Peters. In fact, the third point mentioned “resisting soft behavior audits,” which had just recently occurred with Peters but was unsuccessful. According to Peters’ subsequent posts, someone had privately contacted him to question his behavior, but he did not acknowledge these complaints. The released statement seemed to be the Steering Committee’s “counterattack,” warning that Peters’ refusal to cooperate during the “discussion on the code of conduct” would have consequences. From the responses, it appeared that Peters also acknowledged this.
In addition to resisting the Steering Committee’s request for self-reflection in his posts, the two other examples listed in the article were not particularly convincing, at least not to Peters himself and other respondents. The first point was about “mentioning sexual harassment in examples, dismissing workplace sexual harassment training,” which clearly referred to a post he made condemning how workplace sexual harassment was handled. However, this claim contradicts the second example, which stated “the way emojis and wording are used can be misunderstood or lead to completely opposite interpretations,” because Peters did indeed use a “winking” emoji in previous posts — this emoji often appears in his posts, representing a tone of irony or a “you know what I mean” attitude. The real crux of the issue likely lies in the remaining part of the second example:
“When posting, please remember that your audience is a broader and more diverse professional community, not just the small group of insiders who developed the Python ecosystem decades ago. Some inappropriate ways of communicating that were common in the past may now provoke undue controversy.”
It can be imagined that Peters responded at length to the article; many other community members actively followed up, expressing both understanding of the Steering Committee’s position and support for Peters’ viewpoint. The Steering Committee clearly stumbled in their choice of wording, as the examples did not strengthen their position. However, the committee and the entire Python community showed a determination to change old habits. Some believed that previous habits were preventing more people from joining the project, while the Steering Committee became the final arbiter to prevent this. Peters likely did not disagree with this notion too much, as he himself was a typical representative of those old habits.
However, on a deeper analysis, there were also widespread disagreements regarding the code of conduct and its implementation. The Steering Committee noted in the statement:
“When someone complains that what you previously said is problematic, learn to listen. This is not seeking debate; it is an expression stemming from feelings of pain. At that moment, it might be wise to pause and reflect on what has actually happened.”
Yet, Peters and others worried that in the absence of the basic premise of “rational individuals,” such tendencies could easily tilt to the opposite extreme. Peters pointed out that “several PSF members” were concerned that the code of conduct could ruin their careers because it might prevent them from fully participating in the project. At the same time, there should also be a two-way communication channel for such complaints. “When someone feels that the Steering Committee’s actions or comments have crossed a line, it too is an expression stemming from feelings of pain.”
Smith stated that the examples listed in the statement came directly from complaints by community members:
“They do not need to explain to anyone why their interpretation of certain matters differs from yours. The most important thing is to recognize that everyone has their perspective. The right approach is to trust them, accept differing viewpoints, and learn from them. Don’t always try to tell others they are wrong.”
He also indicated that those facing sanctions under the code of conduct bear full responsibility for the situation. A single complaint is unlikely to result in removal from the project; rather, only repeated “disrespectful behavior,” combined with an inability or unwillingness to “learn and improve” when issues are pointed out, would lead to dismissal. While the statement was not aimed at any specific individual, it was clear that Peters “was an important part of it,” and the Steering Committee had even contacted him privately to discuss the matter.
Peters’ stance was also resolute; he thanked the Steering Committee for reaching out to him but did not agree with their viewpoint:
“The initial concern expressed was that I was ‘not serious enough about the issue of sexual harassment.’ I replied that no rational person would interpret my expression that way. The committee did not respond but instead directly published a public post that modified the measures to claim I ‘dismissed workplace sexual harassment training.’ This is also an incredibly difficult interpretation, just slightly better than the previous statement. … I decided to give up because once a health network is established, no amount of arguing on my part is likely to change it. It’s like someone deciding to be angry; the anger will follow.”
Brendan Barnwell expressed concern that based on the “tone of comments from the audit team/Steering Committee/PSF board,” the entire decision-making process could essentially be summarized as: “If A does something, and B finds it offensive, then A must automatically (or by default) accept that they were wrong.” He stated that this largely distorts the behavior of “respecting different viewpoints and experiences.” Sometimes, the so-called “offended” B also needs to reconsider whether their understanding is correct.
Like Barnwell, several other community members complained that the examples listed in the Steering Committee’s statement were far-fetched, and after reading them, they still did not know how to avoid such issues. Karl Knechtel, Chris McDonough (also a PSF researcher like Peters), and user “Paddy3118” specifically discussed the wording issues. Smith explained that the Steering Committee felt it was inappropriate to be too specific in the statement, but many believed that the wording examples cited were hardly worth debating.
2.3 Sudden Suspension
In summary, although Peters received several different warnings, he did not change his behavior. He continued posting and initiated potentially controversial discussions, participating in two topics about members leaving the Python discussion forum. Overall, he maintained his independent approach. One of the “I’m leaving” posts came from former PSF president, board member, and honorary researcher Steve Holden, while the other came from Knechtel. The latter post resulted in Knechtel being indefinitely banned from the forum, though it is unclear whether Knechtel himself or a moderator edited it, as the current content is somewhat difficult to understand. Around the same time, former board member David Mertz, who was also indefinitely banned from the forum, perhaps spurred by Knechtel’s situation, voluntarily gave up his PSF researcher status.
For those closely following the situation, the Steering Committee’s decision on August 7 to suspend Peters’ core developer status for three months was not particularly surprising. The announcement, made by Wouters, primarily cited recommendations from the code of conduct working group, which specifically listed ten points. It was unlikely that these points would persuade those who believed Peters had been treated unfairly — in fact, the opposite was true; the announcement did not particularly mention Peters, only stating in the first point that “the excessive discussion of the charter changes (with a total of 177 posts in the topic at the time of the moderator’s closure, 47 of which were from Peters) created an atmosphere of fear, uncertainty, and doubt, provoking increasingly intense emotional reactions from other community members.” This list largely became a dividing line: some agreed with it, while others deemed it biased for various reasons.
Steering Committee member Emily Morehouse pointed out that judging specific violations of the code of conduct is often very difficult, and the list in the statement was merely intended to illustrate instances of misconduct:
“This is not the first time the community has characterized misconduct without specific incidents or judgments. In my view, the list of behaviors is not a collection of individual extreme actions that led to the suspension but an attempt to summarize a common pattern of communication that has overstepped boundaries and harmed several members of our community. … For general misconduct, I hope we can find a way to paint a complete picture of the events for the entire community, but this is unfair to both those reporting issues and those being suspended. I have heard feedback on this, and many members hope that our future project communication and operational processes can be improved.”
In various posts (including other unmentioned ones), people also expressed concerns about the review system. These concerns manifested in new posts of protest and private messages sent to the moderators, many of which were not very friendly — some were even outright abusive. This made the moderators sensitive to criticism, which in turn intensified their scrutiny of such posts, leading to more people believing that the review issue was spiraling out of control. Additionally, many community members already perceived the review system as a tool for those in power within the Python world (including the Steering Committee and PSF board), so initiating reviews on contentious posts, such as those discussing charter changes, only perpetuated this vicious cycle of mutual attacks.
For any community, moderation is a daunting and thankless task. Attempting to draw strict boundaries around human misconduct is always fraught with risk, often resulting in moderators being viewed as “wrong” by some segments of the audience. Ultimately, Peters must realize that his communication style is not well-received in the Python community, and he faces two paths: either adjust his communication methods or walk away. The latter is certainly something we do not wish to see, as most of his posts are practical, interesting, and helpful, or at least a random combination of those qualities, without crossing or even approaching any behavioral “boundaries.”
However, whether Peters will be able to return after the three-month suspension remains uncertain. In past cases, suspended individuals need to apply to the Steering Committee for reinstatement. For someone like him, at the center of controversy, getting approval for such an application may not be easy. Some have already begun to mentally prepare for Peters’ complete departure. Serhiy Storchaka inquired whether he could contact Peters for technical assistance, to which Wouters hinted that he would not encourage such action; Storchaka emphasized that he was not trying to circumvent the Steering Committee’s decision, just consulting whether he could continue collaborating with Peters via GitHub. Meanwhile, in a discussion thread about changes to the Steering Committee election voting system, Guido van Rossum mentioned that a voting system expert he knew had been banned: “Perhaps we can wait until his three-month ban is up before seeking his advice?”
It remains unclear what all of this will lead to, and we will continue to monitor the situation. In summary, many hope that Peters, who played a crucial role in developing products like Timsort, can successfully return to the thriving community he helped establish over 30 years ago.
Reference Links:
- https://lwn.net/SubscriberLink/988894/337f36ff39e6342f/
- https://chrismcdonough.substack.com/p/the-shameful-defenestration-of-tim
- https://news.ycombinator.com/item?id=41385546
Stackademic 🎓
Thank you for reading until the end. Before you go:
- Please consider clapping and following the writer! 👏
- Follow us X | LinkedIn | YouTube | Discord
- Visit our other platforms: In Plain English | CoFeed | Differ
- More content at Stackademic.com






