A Twitter thread sparked after flit was moved under the PyPA GitHub organization prompted me to ask the question I have been asking myself for many years…
It’s easier to say what PyPA is not. For example, a project being part of PyPA does not mean it’s official:
It also does not mean that the project is preferred by PyPA:
In addition, it does not make a project necessarily easier to maintain:
On the other hand, as per PEP 609,
there is no formal relationship between the Packaging-WG and PyPA.
Speaking of which, the “Goals” section of PEP 609 is somewhat autoreferential. The list of goals of the PyPA includes:
- Provide support for existing projects under the PyPA
- Foster the creation and acceptance of standards for PyPA projects
- Guide decisions which affect multiple PyPA projects
- Determine which projects should be under the guidance of the PyPA
- Enforce adherence to a Code of Conduct across all projects
which… look like circular definitions to me.
It has also been mentioned repeatedly, here and on GitHub, that the PyPA name is a “joke” and that it does not bear true “authority”.
Despite of that, the full spelling can be read in the minutes of the PSF Board, which has this point in the January 2021 minutes:
RESOLVED, that the Python Software Foundation provide fiscal sponsorship for the “direct project” the Python Packaging Authority (PyPA). The PSF will collect targeted donations and reimburse properly receipted expenses on their behalf up to the level of the donations made to this project.
The only hint I found about what the PyPA is are this sentence from PEP 609:
The Python Packaging Authority (PyPA) is a collaborative community that maintains and advances many of the relevant projects in Python packaging.
and this from the Packaging guide:
This is a list of currently active interoperability specifications maintained by the Python Packaging Authority.
However, the former seems to contradict everything I said above. And about the latter, as per the list of open issues and some of the discussions, the Packaging guide suffers from general lack of maintenance and offers somewhat outdated advice, so I am not even sure about how much trust we can put on that sentence.
I get that packaging is a difficult topic in Python. In part because the plethora of use cases is just too wide (that’s a good thing, and also a curse), in part because of how it has historically developed, in part because folks love to moan in The Orange Site™ about how difficult it is without really understanding anything about it. I understand that PyPA members sometimes get defensive, probably because they are somewhat tired. You do thankless work and the packaging ecosystem has objectively and measurably improved a lot over the course of the past years and I am very thankful for it.
However, circling back to the original question, given that a project joining the PyPA doesn’t have any implications at all regarding its officiality or level of maintenance, that the word “packaging” does not appear a single time in the “Goals” section of the PyPA Governance PEP, and that some (a few? most?) PyPA members have stated repeatedly that the PyPA should not be taken as an official place to look for packaging recommendations…
What is the PyPA? Or, in less clickbaity terms: What can the Python community at large expect from the PyPA?