I enjoyed reading this perspective, but I think it left out some crucial information. My thesis here is that the PSF - already woefully underfunded, with PyPI kept afloat by a massive in-kind donation that gets to stay off the books - grossly misallocates the funding it does receive. Further, there are obvious and serious gaps in the consideration they pay to the moral values they profess to hold most dear.
> The PSF currently employs 12 full-time staff members. Members of the board do not directly manage the activities of the staff—in fact board members telling staff what to do is highly inappropriate. Instead, the board is responsible for hiring an Executive Director—currently Deb Nicholson...
Ms. Nicholson is listed as both a board member and a staff member, and also an officer. Another staff member, Olivia Sauls, is also listed as an officer. Between officers, the board and staff, I count 25 unique individuals, who are presumably all paid.
> Many PSF activities are carried out by these volunteers, in particular via Work Groups.
The membership of these Work Groups also has heavy overlap. For example, four members of the Code of Conduct Work Group are on the Board as well - including Ms. Nicholson.
It's also worth noting that members of Work Groups are not necessarily elected. For example, the cited charter for the new "User Success" Work Group doesn't provide for the addition or removal of members at all, even though it's intended to operate perpetually. The Code of Conduct Work Group appoints its members, who may apply by private contact.
> You can see how that money has been spent in the 2023 Annual Impact Report.... The most significant categories of expenditure in 2023 were PyCon US ($1,800,000), our Grants program ($677,000), Infrastructure (including PyPI) ($286,000) and our Fiscal Sponsorees ($204,000)—I’ll describe these in more detail below.
I can't readily find these numbers in the report, but I can find that staffing for 2023 cost a total of about 1.3 million.
(The report for this year is, for some reason, only available in PDF format. Others pointed out that this was not great for accessibility - supposedly a core value of the PSF and several Work Groups - and this was agreed about, and then as far as I can tell nothing was done.)
> More recently, the PSF has started employing Developers in Residence to directly support the work of both the core Python team and initiatives such as the Python Package Index.
To my understanding, there are currently three of these: Łukasz Langa - the individual who implemented my ban from the Python Discourse forum - since 2021, and Petr Viktorin and Serhiy Storchaka since January.
That makes 28 likely people on the payroll by my count. Other core developers - dozens of them - operate purely on a volunteer basis. (In talks at PyCon, Raymond Hettinger used to joke about Guido van Rossum offering to double his $0 salary.)
> PyPI’s numbers are staggering. Today there are 570,000 projects consisting of 12,035,133 files, serving 1.9 billion downloads a day (that number from PyPI Stats). Bandwidth for these downloads is donated by Fastly, a PSF Visionary Sponsor who recently signed a five year agreement to continue this service.
Per the report, this amounts to over 600 petabytes of network traffic from PyPI per year. This would cost about 12 million dollars a year - nearly triple the operating budget - at market rates (https://aws.amazon.com/cloudfront/pricing/).
My experiments suggest that about a quarter of this could be eliminated simply by enabling and then mandating the use of LZMA (XZ) compression for sdists and wheels (which currently must both use ordinary Gzip compression). There is support for LZMA in the Python standard library. (The one-time cost of recompressing existing archives should be minuscule in comparison - granted that LZMA is computationally expensive, but currently the daily download volume is on the order of dozens of times the entire repository size.)
> The annual US Python Conference—PyCon US—is a big part of the PSF’s annual activities and operations. With over 3,000 attendees each year (and a $1.8m budget for 2023) running that conference represents a full-time job for several PSF staff members.... the importance of PyCon US to the Python community is such that the PSF is happy to lose money running the event if necessary.
Also for a sense of scale: the PyCon US Youtube channel (https://www.youtube.com/@PyConUS) has about 29k subscribers and a total of 1.35 million views across all videos. For comparison, that's not many more people than those taking the JetBrains Python developer survey each year (e.g. https://lp.jetbrains.com/python-developers-survey-2023/ claims 25k), and less than a sixth as many views as for the question "How do I list all files of a directory [in Python]?" on Stack Overflow (https://stackoverflow.com/questions/3207219/). But perhaps "the Python community" (with inclusivity as a core value) is meant to represent a much smaller group than Python developers in general.
Board members of the PSF are not paid. We get to claim expenses on travel to PyCon and to the annual board retreat, but we're asked to see if our employer can foot the bill for those first (several do).
Officers who are also PSF staff members are paid because they're staff members - officers who are not staff members aren't paid.
Two of the current developers in residence are paid as PSF staff. One is paid as a contractor which I believe is because they don't live in the USA.
The Fastly sponsorsip is indeed crucial to continuing to offer PyPI as a free resource. Having an infrastructure company sponsor that kind of thing makes a lot of sense, because their underlying costs are significantly less than if the PSF were to pay market prices for that bandwidth.
The only direct PSF elections are for the board - different work groups have different governance structures, none of which involve elections as far as I know.
Python core / steering council members are also elected but that's entirely separate from the PSF, see https://peps.python.org/pep-0013/
$1.8m for a multi-day conference that supports 3,000+ attendees is pretty standard for North America.
>Officers who are also PSF staff members are paid because they're staff members - officers who are not staff members aren't paid. Two of the current developers in residence are paid as PSF staff. One is paid as a contractor which I believe is because they don't live in the USA.
Thanks for the clarification.
>Having an infrastructure company sponsor that kind of thing makes a lot of sense, because their underlying costs are significantly less than if the PSF were to pay market prices for that bandwidth.
Absolutely. But if I worked at Fastly I would not be particularly happy about seeing that good will squandered to such an extent.
>The only direct PSF elections are for the board - different work groups have different governance structures, none of which involve elections as far as I know.
Yes, and this is a clear problem if you expect work groups to have any actual power or influence. Especially the one making decisions about banning people.
>$1.8m for a multi-day conference that supports 3,000+ attendees is pretty standard for North America.
So I hear. At that rate you'd be looking at about $600 US in admission per attendee to break even. I've certainly heard of conferences charging more than that (certainly for the ones that have tiered admission).
But I'm accustomed to fandom conventions (still multi-day with tens of thousands of attendees) that charge about a tenth of that and still manage to raise money for charity. Why is it that much more expensive to run an event for computer programmers?
To clarify: the PSF did not lose $1.8m on PyCon. It spent $1.8m and made most of that money back in revenue from the event.
Most years the cost is fully covered by tickets and sponsors and the event makes a profit.
When PyCon runs at a loss it’s generally a sponsorship problem. The tech industry has seen a lot of layoffs recently, and companies that sponsor large conferences are often doing so for recruiting. If a company is laying people off they are likely to drop their sponsorship budget.
It's not unusual for board members to also be officers and staff and it's generally understood that being on the board by itself does not denote a authority over staff, however, a staff member on the board would still be able to fulfill their staff responsibilities.
That said, it would be best to clarify if the board/officers are getting paid.
> My experiments suggest that about a quarter of this could be eliminated simply by enabling and then mandating the use of LZMA (XZ) compression for sdists and wheels (which currently must both use ordinary Gzip compression)
At this point, I wonder if jumping to zstd would be a much larger savings and require about the same amount of organizational effort, even if the technical work would be larger.
I remember being pretty perturbed a few years ago learning PSF pulled in $5M a year and spent most of the profit on “outreach.” Which is a nice to have at the end of a budget but not as the primary item.
Meanwhile the packaging group been complaining for a decade+ that they are unpaid volunteers and don’t have the resources to maintain existing features in pip, i. e. why they have broken compatibility several times in the last few years.
The developer in residence program is quite new but is a big improvement in terms of supporting key pieces of the Python ecosystem with paid contributors.
The work they are doing is not important and would have been done for free, had the inner circle not chased away most free contributors and staffed these positions with their friends.
Yes, please continue, and don’t forget packaging. Thankfully astral is stepping up to potentially take that off their hands, de facto if not officially.
Oh, and less outreach for one of the most popular programming langs in the world. :-D
The fact that Python is one of the most popular programming languages in the world and the fact that the PSF puts a lot of its effort into community and outreach may well be connected.
> The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.
I don't think so. It has been a learning language for two+ decades, very easy to pick up yet still powerful, and growing. Add the recent decade+ boom in data to machine learning to AI (see other comment).
I'd be surprised if outreach activities reached a fraction of that impact. In the other direction, the poor packaging story has definitely hurt it's reputation. Not a single python post goes by without someone complaining about it.
Also protect is near the front of that statement. While a mission can be anything, it doesn’t make long term sense to look for new roommates when your foundation is crumbling.
> The fact that Python is one of the most popular programming languages in the world and the fact that the PSF puts a lot of its effort into community and outreach may well be connected.
They may be, as any correlation might imply causation, but it would surprise me. Stack Overflow, great libraries (and their communities), all the data science/scientific computing open source work, the work to date on pypi, the lower barrier-to-entry syntax, as well as actual (C)Python improvements are the main things.
As an analogy, I've seen in previous companies that the HR believes they set the culture of the company, and they do things that attempt to improve the culture, but I'd still say that 99%+ of company culture is not coming from HR, except if it were extremely negative (e.g. Microsoft and stack ranking). Thankfully my more recent companies have understood this much more, which is wonderful.
Python is popular, because it's simple, and it's great as a glue language. The simplicity made it the language of choice for beginner's computer science courses at universities and schools. The glue language qualities led to numpy/scipy/et al., and that led to Python's popularity when AI/ML/data science became popular.
How much of the PSF's 2023 outreach budget was spent on those? How many universities were given money or otherwise convinced to redesign their curriculum using Python? Did it go to numpy?
They should just turn it off for 24 hours (with plenty of warning so that people who pay attention can be prepared). It might remind that industry that they exist at all.
5 million is a rounding error in terms of spend on python programming - Facebook alone between their website and ML likely does orders of magnitude more.
Often a thankless job - for whatever reason these small budget groups attract lots of criticism.
Nothing stops anyone from using or improving python
> My experiments suggest that about a quarter of this could be eliminated simply by enabling and then mandating the use of LZMA (XZ) compression for sdists and wheels (which currently must both use ordinary Gzip compression).
That won't happen as there is a slow effort behind the scenes to get Zstandard in the standard library, which is far better.
Why is the effort "slow"? As far as I can tell, LZMA is still better than ZSTD at compression. ZSTD is just faster. So LZMA seems to be a better solution to the bandwidth cost problem.
While I agree to your conclusion, the correct analysis needs to look at both the expected transfer rate and the decompression speed because otherwise you might end up picking a very slow algorithm (like, literally 10 KB/s). LZMA is thankfully reasonably fast to decompress (> 10 MB/s) so it is indeed a valid candidate, though the exact choice would heavily depend on what is being compressed and who would actually do the expensive compression.
Currently the model is that compression is done by the package uploaders, but I don't see a reason why uploaded files couldn't be (re)compressed on the server. Again, there would be vastly fewer compression events than decompression (after download) events. Aside from that, it's better if the standards allowed for multiple compression formats. Any effort to start using a new one for existing files in a different format, could then be phased in (prioritizing the packages where the biggest savings are possible).
> I don't see a reason why uploaded files couldn't be (re)compressed on the server.
The reason why would be of course the computational expense and latency in the package availability, which will vastly limit the algorithm choice. LZMA is probably still okay under this constraint (its compression speed is in the order of 1 MB/s for the slowest setting), but the gain from using LZMA instead of Zstandard is not that big anyway.
I presume that the vast majority of big wheel files are for compiled and bundled shared libraries. (Plain Python source files are much easier to compress.) You can estimate the potential gain from looking at various compression benchmarks, such as the `ooffice` file for the Silesia benchmark [1], and the difference is not that big: 2426 KB for 7zip (which uses LZMA2 with BCJ filter) and 2618 KB for zstd 0.6.0---less than 10% difference. And I believe, from my experience, that BCJ is responsible for most of that difference because x86 is fairly difficult to compress without some rearrangement. The filter is much faster than compression and at least as fast as decompression (>100 MB/s), so there is not much reason to use LZMA when you can instead do the filtering yourself.
I am not a member of the Python community, and I know from here and elsewhere that there is a lot of drama (e.g. "the individual who implemented my ban from the Python Discourse forum"), so I know there is a lot of underlying context here I may not be aware of.
That said, as someone who does sit on a (non-software related) non-profit board, I got so frustrated by your comment because it included so many uninformed and flat out false assumptions, the same ones I have to roll my eyes over when I hear them directed at my non-profit.
First, it is rare (like extremely rare) for non-profit board members to get paid. For most non-profits, the expectation is that board members donate a considerable amount. The author of the post already commented that board members are not paid, making the underlying thesis of your post ("28 people on payroll") invalid.
The other thing that's frustrating about your post is the basic assumption that "number of paid people on staff = bloat", and it's something that drives me crazy. Sure, on one hand, there can be a lot of bloat (especially with larger nonprofits), and of course there are some nonprofits that are borderline frauds, only existing to funnel money to friends and family.
But getting good people to get a lot of shit done costs money. The vast, vast majority of people who work for non-profits could probably get a larger salary elsewhere - they're not doing it "for the money". And there are a lot of jobs where doing it with volunteers is basically impossible. Most volunteers don't want to do the boring yet critical grunt work of event planning, accounting, etc., and those tasks need to be done.
I think you have fundamentally misunderstood my argument.
"28 people on payroll" is not at all important to my point. The financial report says how much money is spent on salary. The important part is that most of it doesn't go to developers.
I don't see bloat because of how many staffers there are. I think funding is misallocated because developers don't get it (rather, they aren't hiring more people that can actually work on Python full time - my understanding is that most core devs have a day job) and because international events apparently run on a shoestring compared to PyCon, which in turn doesn't seem remotely important enough to justify its expenditures.
This results, among other things, in an ecosystem where basic PyPI support requests (see e.g. https://github.com/pypi/support/issues/2771) go unanswered for months, and Pip has embarrassing flaws (asking it to download a package without installing it can cause it to run arbitrary code from setup.py - https://github.com/pypa/pip/issues/1884 and many others) that have persisted for almost the entire history of Pip.
That said, I do see "bloat" in the social overhead of Python governance, given the proliferation of (volunteer) Work Groups that don't seem to be accomplishing very much.
And just to emphasize, I did already describe the PSF as "woefully underfunded", because it is - just like most other open source orgs.
While Zig foundation is impressive, a large portion of their income comes from Uber for the Zig toolchain for C/C++, not Zig the language proper. This shows both a good strategy picked by the foundation and the difficulty of funding based on the language proper.
> a large portion of their income comes from Uber for the Zig toolchain
Nah, that was a sizeable chunk of money (200k) that we received last year, but it was meant to last 2 years and we don't know if it will be renewed or not (Zig seems to be working well enough, "unfortunately").
We're getting more constant financial support from startups who have adopted Zig (Bun, TigerBeetle, ZML, to name the main ones) alongside some extremely generous private sponsors.
We're not rushing commercial adoption of Zig because we want to take our time to grow the project as we see fit. Open the changelog of every Zig release and you will see at the very top that we don't recommend usage in production yet (unless you really know what you're doing).
Corporate sponsors from wider adoption will come at the right time.
Ah, that's a good news to hear. I felt that Zig is already quite useful at least for some uses and meant to say that merit alone doesn't imply a financial success (whatever it means), it'd be another story if the financial success is not yet aimed.
Just a nit - no one serving the estimated 150 gbits/s of 600PB/year would use AWS to serve it; a more realistic amount would be about 1 million per year.
Well they _might_. But not at full "retail" AWS bandwidth costs. They are very open to negotiation once you get anywhere near a million bucks a month in spending.
But yeah, they'd have to be discounting very very seriously for you to not take your 600PB/year elsewhere.
> could be eliminated simply by enabling and then mandating
It seems like the PSF choosing an option that costs a little more while preserving the current UX of contributions on PyPI is a reasonable choice for a healthy ecosystem. Most of the ecosystem doesn't care about a few thousand dollars of funding, and most do care about the ecosystem of libraries on PyPI thriving. Given the state of Python packaging being what it is this seems like absolutely the right choice, to reduce complexity.
That $1.8m figure is money spent, not profit made.
PyCon US usually takes in more than it costs to run - from sponsors and ticket sales.
This year the event ran at a loss, as noted in the post. In the past this has been rare - the PSF’s other activities used to be funded mostly from PyCon profits.
> 600PB per year, this costs around $12 million USD..
This value is off by at least a factor of 10. I pay around $600/yr for a 1Gbit fiber line which transfers more than 3PB/year. PSF is paying $6,000/yr to transfer the same amount, i.e. 10x more. Where is the 10x inefficiency compared to AT&T retail coming from?
Inclusivity is preached, but if you are from some social background where gender identity is not valued, and you do not hide that, you are not welcome in the project.
> (…) if a society's practice of tolerance is inclusive of the intolerant, intolerance will ultimately dominate, eliminating the tolerant and the practice of tolerance with them. Karl Popper describes the paradox as arising from the fact that, in order to maintain a tolerant society, the society must retain the right to be intolerant of intolerance.
Lest we forget that Popper was describing a specific type of "intolerance" that existed in the 1940s.
> "In this formulation, I do not imply, for instance, that we should always suppress the utterance of intolerant philosophies; as long as we can counter them by rational argument and keep them in check by public opinion, suppression would certainly be unwise."
I realised my previous comment lacked some context and was adding to it but then saw you replied, so I’ll address it here instead.
There is a large difference between not valuing something and devaluing it. The former is neutral, it does not care what people engage in within the boundaries of not causing harm; the latter is actively against something and tries to stop people from doing it (we can say it is intolerant to it).
I’m not aware of an example of someone having been neutral on gender identity in the “the project”¹ and having been made unwelcome. But I’m not a Pythonista myself, so I’m not intimately aware of the internals. Could you share a concrete example? Preferably one that includes some degree of community support, not just the ramblings of a single individual, as the latter would not be representative.
¹ It’s unclear what you’re referring to. The PSF? The Pyhon language core? The Python community?
I see where you are going there, not affirming peoples gender identity can be seen as intolerance.
Let me ask you a question. Would you argue the same for national identity? Would you feel safe in a community where user profiles feature the flag of the country they identify with? Where its normal to name your country with your name? You probably wouldn't want to affirm that, either. It gives "bogus criteria" vibes like from the hacker ethics.
You might now understand how i and some others feel about gender identity. Some people want to have a social life without dealing with that. And this isn't accepted by people who want affirmation for their gender expression, regardless of cis or trans.
For ¹, i meant it in a generic fashion, as python is not the only project where this happens.
> I see where you are going there, not affirming peoples gender identity can be seen as intolerance.
It seems that what you understood from my comment is that not being actively positive about something is being intolerant. That is not what I said, I only touched on neutrality and negativity, not positivity. “Tolerance”, after all, does not mean “active support” but “acceptance”.
Again, there is a large difference between being neutral on something and being against it.
> Would you feel safe in a community where user profiles feature the flag of the country they identify with? Where its normal to name your country with your name?
Yes? People do that all the time on social media, putting a flag near their name. Sometimes they even do it to support other countries (such as Ukraine).
> You might now understand how i and some others feel about gender identity.
Not at all. If anything, I’m even more confused. I’m curious why you wouldn’t feel safe in such a community, and why “safe” is the word you chose. What’s the danger? I mean, in the country case I could see a point: there’s tribalism and rivalries amongst countries which can lead to war, but never have I felt unsafe around someone who expressed their gender identity.
> Some people want to have a social life without dealing with that.
Just recently I spent several days in a group where one person used pronouns fluidly. They were incredibly sweet, positive, good natured, and open-minded. I’m not sure what is there to “deal with”.
Perhaps this is related to different countries and cultures.
One thing I want to make very clear, especially considering how you stated the previous comment, is that I’m not calling you intolerant, or a bigot, or any other insult. I don’t know you, and it wouldn’t be right to judge you as a human from a single random comment. I am trying to understand your point and what to you is (apparently) scary or wrong about gender identity.
> I’m curious why you wouldn’t feel safe in such a community, and why “safe” is the word you chose.
"
I hate being judged by whatever gender idea people "assign" me. Bogus criteria. So being around people who are natural at doing it is annoying. Expressing your gender identity signals that you consider it to be significant. Not causation, but correlation.
> Just recently I spent several days in a group where one person used pronouns fluidly.
Pronouns and names are easy. Its not easy dealing with whatever weird ideas of masculinity and femininity some people come with. Especially if your world is not as pink/blue split as theirs. Some people are chill but more aren't.
I think this would be a non-issue if gendered people had more awareness that gender is a) culturally local and b) not everyone does it.
> Bogus criteria. So being around people who are natural at doing it is annoying.
Annoyance is a far cry from fear, and you used the word “safe”. While there are people who have good reason to fear those who misgender them (those who do so on purpose and are threatening to them because of it) I haven’t quite seen the case for the reverse.
Every group has annoying extremist people and it’s understandable to want to avoid those, but judging a whole community on account of some outliers on a bad day does not seem fair.
> Expressing your gender identity signals that you consider it to be significant.
Not necessarily. It seems to be more common to see people doing so in solidarity, basically to signal “if you’re the type of person to whom this is important but are afraid to say so, this is somewhere where you can be safe from aggression”.
Worth noting that “gender identity can correlate with a person's assigned sex or can differ from it” so most people express their gender identity.
> Pronouns and names are easy. It's not easy dealing with whatever weird ideas of masculinity and femininity some people come with.
This person was non-binary, which is why they used the pronouns fluidly.
I don’t see why considering masculinity and femininity to exist on a spectrum is weirder than thinking there’s a hard line. And why do you have to “deal with” it? I’m struggling to understand that part. Every person is different anyway, there are women who do not wear makeup and men who do not like sports, it’s much simpler to not ascribe any behaviour to a gender.
> Especially if your world is not as pink/blue split as theirs.
While they were good natured, I wouldn’t classify their world in those colours. At the time I met them they were in fact quite fearful for the results of an election in their country. The kind of election were some people would treat them as subhuman.
> I think this would be a non-issue if gendered people had more awareness that gender is a) culturally local and b) not everyone does it.
Now I’m curious again. Since you’re presumably talking about other people, are you saying that you don’t consider yourself to be gendered or have a gender yourself? That is interesting to me. I invite you to share more on it, I’m not sure what question to ask yet and wouldn’t want to make you uncomfortable.
My complaint is not directed at trans people, but the people who care much about gender identity, and trans people are more likely of this kind because it's a common reason for transitioning. Cis people can and will do the exact same stuff.
> I don’t see why considering masculinity and femininity to exist on a spectrum is weirder than thinking there’s a hard line
This stab goes into the wrong direction. I consider both fiction. What people do seems like role play to me. It is okay with people commit themselves to it, but they need to know the limits to it. Or ask for consent beforehand.
The pink/blue was not a reference to US politics, it was a reference to the gender binary as displayed on the transgender flag. People who classify every other thing as masculine or feminine are difficult.
And to me, i don't have a gender identity, just like every other newborn human, beyond what other people attribute to me. against my wishes. I reject the "marginalized minority" approach to it as i consider it patronizing, I'm a self-responsible adult.
> My complaint is not directed at trans people, but the people who care much about gender identity
That’s what I understood.
> The pink/blue was not a reference to US politics, it was a reference to the gender binary
Again, that’s what I took it as. Especially since I’m not American and neither was the non-binary person I mentioned. I didn’t take your comment as political.
Unfortunately, I think the medium of asynchronous text comments may be working against us here. I feel it would’ve been beneficial to have this conversation in person. Your take seems nuanced and not outright dismissive so I think it would be worth exploring further and attempt a consensus. But it’s getting late and I still have stuff to do.
Still, thank you for a civil conversation and indulging in my questions in good faith. Have a nice <insert your time of day> and week.
But you can’t avoid gender identities as long as you are speaking English.
There are 3 ways about this:
You codify that you remove them from communication. It’s pretty common on HN to say “author”, “op” or “parent” instead of he or she. Many parliaments have similar ways of talking, where you don’t use 3rd person pronouns.
Gender identities are assigned to people and they just have to accept it (this could be by a central authority like a government or on-the-fly by whoever is communicating or a mix), and communication can use 3rd person pronouns naturally.
Or, people assign their own identities, in which case, other people might have to be told which pronouns to use. Older systems, often still in use by airlines and hotels asks for salutations, but they are problematic as they are both too specific and not specific enough. They tend to require some sort of job or educational background in order to be gender neutral and they are often interpreted as containing marital status information for female salutations (miss vs Mrs)
I think it’s weird to say the Python community is excluding you because they went with option 3 and not 1.
And lastly I think that saying that a community that asks you to voluntarily add a country sticker to you profile is exclusionary is a more than a stretch.
> The PSF currently employs 12 full-time staff members. Members of the board do not directly manage the activities of the staff—in fact board members telling staff what to do is highly inappropriate. Instead, the board is responsible for hiring an Executive Director—currently Deb Nicholson...
Ms. Nicholson is listed as both a board member and a staff member, and also an officer. Another staff member, Olivia Sauls, is also listed as an officer. Between officers, the board and staff, I count 25 unique individuals, who are presumably all paid.
> Many PSF activities are carried out by these volunteers, in particular via Work Groups.
The membership of these Work Groups also has heavy overlap. For example, four members of the Code of Conduct Work Group are on the Board as well - including Ms. Nicholson.
It's also worth noting that members of Work Groups are not necessarily elected. For example, the cited charter for the new "User Success" Work Group doesn't provide for the addition or removal of members at all, even though it's intended to operate perpetually. The Code of Conduct Work Group appoints its members, who may apply by private contact.
> You can see how that money has been spent in the 2023 Annual Impact Report.... The most significant categories of expenditure in 2023 were PyCon US ($1,800,000), our Grants program ($677,000), Infrastructure (including PyPI) ($286,000) and our Fiscal Sponsorees ($204,000)—I’ll describe these in more detail below.
I can't readily find these numbers in the report, but I can find that staffing for 2023 cost a total of about 1.3 million.
(The report for this year is, for some reason, only available in PDF format. Others pointed out that this was not great for accessibility - supposedly a core value of the PSF and several Work Groups - and this was agreed about, and then as far as I can tell nothing was done.)
> More recently, the PSF has started employing Developers in Residence to directly support the work of both the core Python team and initiatives such as the Python Package Index.
To my understanding, there are currently three of these: Łukasz Langa - the individual who implemented my ban from the Python Discourse forum - since 2021, and Petr Viktorin and Serhiy Storchaka since January.
That makes 28 likely people on the payroll by my count. Other core developers - dozens of them - operate purely on a volunteer basis. (In talks at PyCon, Raymond Hettinger used to joke about Guido van Rossum offering to double his $0 salary.)
> PyPI’s numbers are staggering. Today there are 570,000 projects consisting of 12,035,133 files, serving 1.9 billion downloads a day (that number from PyPI Stats). Bandwidth for these downloads is donated by Fastly, a PSF Visionary Sponsor who recently signed a five year agreement to continue this service.
Per the report, this amounts to over 600 petabytes of network traffic from PyPI per year. This would cost about 12 million dollars a year - nearly triple the operating budget - at market rates (https://aws.amazon.com/cloudfront/pricing/).
My experiments suggest that about a quarter of this could be eliminated simply by enabling and then mandating the use of LZMA (XZ) compression for sdists and wheels (which currently must both use ordinary Gzip compression). There is support for LZMA in the Python standard library. (The one-time cost of recompressing existing archives should be minuscule in comparison - granted that LZMA is computationally expensive, but currently the daily download volume is on the order of dozens of times the entire repository size.)
> The annual US Python Conference—PyCon US—is a big part of the PSF’s annual activities and operations. With over 3,000 attendees each year (and a $1.8m budget for 2023) running that conference represents a full-time job for several PSF staff members.... the importance of PyCon US to the Python community is such that the PSF is happy to lose money running the event if necessary.
For a sense of scale, this is 200 times the grant that made DjangoCon Africa possible - though it ran into serious issues due to underfunding (https://pythonafrica.blogspot.com/2023/12/an-open-letter-to-...).
Also for a sense of scale: the PyCon US Youtube channel (https://www.youtube.com/@PyConUS) has about 29k subscribers and a total of 1.35 million views across all videos. For comparison, that's not many more people than those taking the JetBrains Python developer survey each year (e.g. https://lp.jetbrains.com/python-developers-survey-2023/ claims 25k), and less than a sixth as many views as for the question "How do I list all files of a directory [in Python]?" on Stack Overflow (https://stackoverflow.com/questions/3207219/). But perhaps "the Python community" (with inclusivity as a core value) is meant to represent a much smaller group than Python developers in general.