I’ve hesitated to write this up this for a while, as it almost feels like this PEP is a done deal and it’s too late, but following Bernat’s earlier post I decided to post this.
In summary, I support the PEP and the concept of a Packaging Council (clearly a lot of work has been put into it, over many years!), but I have a couple of concerns as the proposal currently stands.
I think making the electorate the members of the PSF is the wrong choice.
The Python Software Foundation (PSF) does a lot of good. For disclosure, I am a member of the PSF, and have been for several years. Notably, the PSF supports and funds the services required for PyPI to operate and funds the ‘developers in residence’ programme. Becoming an individual member of the PSF requires a financial contribution (min $25/yr, suggested $100) or a self-declaration of spending 60 hours/year volunteering in the community.
However, the PSF does not play an active role in core development. I think this is a good thing, and the PSF focuses (from what I can tell as an outside observer) largely on events, community engagement, events, etc. For better or for worse, it is easy to be an active partipant in core development, PEP discussions, or standards development without directly interacting with the PSF or its processes .
I do not think it is right to require membership of the PSF to participate in the governance of a part of the project, unless we require it for contribution to all parts of the project.
Under the PEP as written, non-members of the PSF are ineligible to serve on the Packaging Council and ineligible to vote for its members. Many people active in the Python community, including several core developers and triagers, are not members of the PSF, either through choice or inaction. For example, some individuals may not wish to join a membership organisation for personal reasons. Some may disagree with a decision made by the PSF and choose not to be a member, or to resign an existing membership. Others may not want to have an affiliation with/membership of an organisation based in a particular country.
I do not think we should exclude any of these groups from particpating in how Python packaging is governed. We may disagree with the choice not to join the PSF, but that should, in my opinion, be entirely distinct from technical considerations of standards and processes.
The clearest parallel is status as a core developer: the right to vote in Steering Council elections has no relation with the PSF.
My further concern with a very broad membership class is that electors will either (a) not know what or who they’re voting for, leading to low engagement, or worse (b) not know what they’re voting for, and vote randomly or for ‘recognisable’ names, leading to a popularity-contest style election. This is bad for obvious reasons.
I worry that declaring the entire PSF voting membership as electors for the Packaging Council will lead to these problems, whilst not materially affecting the class of people who participate in activities under the Council’s remit.
Packaging is a (very) important topic, but those who participate in standards discussions and implementing tools form a relatively small group. I do not believe that being an elector for the packaging council will cause the ‘man on the Clapham omnibus’ to become materially more engaged with the packaging community, although I would love to be proved wrong. Packaging is currently incredibly open, with (almost) all discussions happening in the open on Discourse, and all major packaging-related projects being open source. Becoming involved in packaging work is very low friction, and a testament to the community.
I have always been of the opinion that rights and obligations are two sides of the same coin. In this case, the right of voting, in my opinion, should come with the expectation of active participation with packaging in Python, save just as a user. For example, downstream redistributors are absolutely engaged in (re-)packaging, but are perhaps unlikely to engage with the PSF – their primary affiliation would be to the OS/distribution that they volunteer for. As such, I personally support the previous model proposed by the PEP, where there is a defined electorate of ‘those engaged with packaging’, in whatever appropriate sense is used to define ‘engaged’.
I appreciate that using PSF voting members as the electorate makes some things easier in implementing the governance process, but for these reasons I do believe that it is the wrong choice to make, both in potentially excluding community members, and in including many who may be under-informed or not particularly engaged in the PPC’s work. Further, I believe some matters are complicated, including the differing roles of the Steering Council & PSF Board in overseeing the Packaging Council, and which has ultimate authority.
Finally, I would mostly echo Bernat’s point on conflict resolution. I raised this point before, though not on Discourse. The PEP currently states:
The [Packaging and Steering Councils] would work together on issues that intersect the packaging domain and language stewardship …
It also says elsewhere that should the Packaging Council not be able to decide a matter, the SC may make a binding decision.
I take this to mean that if the Packaging and Steering councils disagree on something & it can’t be resolved by consensus or redrafting the proposal, the SC can override the Packaging Council? If so, I think it would be useful to clarify this explicitly in the text. Clearly we hope this will never happen, but governance documemts are the place to specify what happens when things go wrong, to prevent future arguments.
Again, thank you all for your work on the PEP thus far. As I said, I haven’t been sure about writing this post, and as such I am sorry it comes so late.
Thank you for your consideration,
Adam