Things I've learned serving on the board of the Python Software Foundation
Critics of the Python Software Foundation argue that, despite Python’s massive global footprint, the organization is underfunded and misallocates much of its limited budget toward outreach and conferences rather than core infrastructure and paid developer time. Commenters highlight PyPI’s dependence on donated bandwidth, long‑standing packaging issues, and opaque or unelected working groups as signs that governance and technical priorities are misaligned. Others counter that staffing, community building, and a major flagship conference are normal and necessary for a modern non‑profit, while expressing concern that recent Code of Conduct enforcement controversies may further erode trust and volunteer engagement.
PSF Funding, Staffing, and Spending
- Debate over whether PSF is “woefully underfunded” yet still misallocating what it has.
- Clarification that board members are unpaid; staff (including some officers and Developers in Residence) are paid.
- Staff costs around $1.3M in 2023; some argue too little money goes to core development vs. administration and outreach.
- Others counter that for a language as widely used as Python, PSF’s budget and headcount are modest and necessary to get unglamorous work done.
PyCon US and Outreach vs Core Development
- PyCon US costs about $1.8M; typically breaks even or profits via tickets and sponsors, but recently ran at a loss due to weaker sponsorship.
- Some see this scale as standard for North America; others compare it unfavorably to much smaller, underfunded international events and question its relative importance.
- Broader argument: is Python’s success mainly due to PSF outreach or to language qualities, libraries, and external ecosystems?
PyPI Infrastructure, Bandwidth, and Packaging
- Fastly’s donated bandwidth for PyPI is seen as crucial; estimated traffic ~600 PB/year.
- Disagreement over cost estimates (AWS retail vs more realistic hosting or negotiated prices).
- Suggestions to reduce bandwidth via better compression (LZMA or zstd), leaner wheels, and packaging improvements; others caution against added complexity and volunteer bandwidth.
- Complaints that packaging and PyPI support are understaffed; some long-standing pip issues and slow support responses cited.
Governance, Work Groups, and Elections
- Only the board is directly elected; work groups have varied, often non-electoral governance.
- Concern that influential groups (e.g., Code of Conduct, “User Success”) can be self-appointing and unaccountable.
- Some view this as normal for nonprofits; others see it as a structural problem if such groups wield real power (e.g., bans).
Code of Conduct and Community Conflict
- Extensive criticism of the Code of Conduct working group: alleged ideological capture, lack of due process, and use of CoC enforcement to silence critics.
- Specific controversy around a prominent contributor’s temporary suspension, described by critics as based on vague or defamatory accusations.
- Calls for independent investigation; discussion of potential legal liability for defamatory statements made in official posts.
- Others note the “paradox of tolerance” and defend excluding intolerant behavior to protect marginalized participants.
Foundations, Nonprofits, and Comparisons
- Some say modern open source is too focused on foundations, positions, and politics rather than software, with “inner circles” and gatekeeping.
- Counterpoint: large projects need formal structures; most nonprofit staff are underpaid relative to industry and essential for operations.
- Comparisons drawn to other foundations (Linux, Mozilla, Zig) and to 501(c)(3) vs 501(c)(6) models; concerns that legal form doesn’t prevent capture or misuse.
PyPI Content Quality and Curation
- Complaints that many PyPI packages are low quality, abandoned, or one-off projects; proposals for expiry rules, quality metrics, or endorsements.
- Others argue that PyPI is intentionally uncurated, similar to npm and other ecosystems; editorial review would require large additional resources and might break users’ dependency stacks.
- Some note that many “stale” libraries are simply stable and “finished,” so age is not a reliable quality signal.