On behalf of my co-authors, I’m happy to share that we’ve published an updated version of PEP 772, Packaging Council governance process. Let’s please use this new thread for feedback of this latest revision.
This update is the result of much discussion at PyCon, in the Packaging Summit breakouts and during the sprints. Special thanks go to @willingc and @geofft for the detailed and excellent conversations, both at PyCon and in the PR.
The biggest change is that we’ve aligned Packaging Council Electors with PSF Membership. Gone are the previous categories, which never really quite allowed us to reach a comprehensive and equitable cohort of eligible electors. PSF Membership simplifies the whole question and can encompass everyone. If you contribute to a PyPA project, or CPython, or the Python community or ecosystem, you are clearly a Contributing Member. If you instead prefer to act as a Sponsoring Member by donating to the PSF, then you’re a PSF Member too, and can receive a ballot to vote in Packaging Council elections. Everyone who wants to vote, can!
The PEP also now gives more explicit oversight to the Steering Council, which acts as a final arbiter for conflicts and questions, inline with its other technical oversight responsibilities. For this reason, sitting Steering Council members are prohibited from serving on the Packaging Council.
The election process and quorum requirements have been nailed down to eliminate ambiguities. Other aspects of the language, terminology, and process have been clarified and improved. The atypical PEP approval process has been expanded to include approval by the PSF Board, which is required in order to link Packaging Council Electors to PSF Membership[1].
Again, huge thanks to everyone who helped improve this PEP. I hope we can start the approval process (PSF Board, PyPA, Steering Council) in the next few weeks.
it already included necessary approval from the PyPA according to PEP 609, and the Steering Council through its normal process ↩︎
I’m not particularly familiar with how PSF membership works - as a pip maintainer am I automatically a PSF member (and hence eligible to vote for the packaging council) or would I be required to explicitly apply to be (register myself as? I don’t know what the process is) a PSF member?
I don’t have any strong reason not to become a PSF member, it’s just an affiliation I’ve never felt any particular need to pursue. And if I did need to do so in order to participate in PyPA elections, I would be doing so purely for that purpose, which feels a bit wrong to me.
Thanks for all your work on the drafts and in the conversations at PyCon, Barry!
I want to put some extra underscores on one thing: if you contribute to any open-source Python packaging projects, even if they are not PyPA projects, that counts towards the Contributing Member tier of PSF membership. The eligibility rules say, “You qualify as a Contributing Member if you dedicate at least five hours per month volunteering on projects which advance the mission of the PSF by creating or maintaining open source software available to the public at no charge, organizing Python events, participating in one of the PSF’s working groups, etc.”
Keep in mind, “The mission of the PSF 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.”
So your volunteering can be on any projects that promote and advance the Python programming language and facilitate the growth of the Python community.
You would need to register and fill out a form saying that the project that qualifies you is pip. (It’s not an “application” in the sense that someone needs to vote to approve you or anything.) You would certainly qualify. My understanding from the conversations is that the PSF is happy for people who are eligible to be Contributing Members to join just to participate in Packaging Council elections.
Registering/becoming a member also allows you to vote for the PSF board, if you’d like.
I think the switch to a broad PSF Membership based voting franchise makes sense, as the PSF’s self-certification style contributing membership model addresses similar needs to those of the packaging ecosystem, and it doesn’t make sense to ask people to self-nominate for packaging council voting membership separately when the PSF can just maintain one membership registry, and registered members can decide for themselves if they want to vote in Packaging Council elections in addition to PSF Board elections.
My one potential concern on that front relates to the way quorum is defined on the PSF side of things: while the PSF quorum threshold is lower (33% rather than 50%), we do need to present this arrangement to electors with an expectation that folks that want to vote in the Packaging Council elections should also be voting in the PSF Board elections (it’s not even an unrelated request, given that the PSF are the actual legally responsible operators of PyPI and the legal stewards of the core Python and CPython trademarks and copyrights). While it doesn’t seem likely, it’s at least theoretically possible that enough people signing up as PSF Members solely to vote in the Packaging Council elections could hurt the PSF’s abiltiy to reach quorum for other topics (such as bylaws changes and the annual Board elections).
We likely also want to include something along the lines of this specific bit of wording in the PSF Bylaws: “The corporation may choose to waive the affirmation requirement for any member who has voted in the most recent preceding regular Board of Directors election”. Similarly, voting in the preceding Packaging Council election should reasonably be considered as an intention to also vote in the next one. That way folks will only be asked for explicit affirmation before the first election and if they miss an election, rather than being asked every year.
In both cases, the member must affirm their choice to vote. I don’t know how common it will be for a PSF member to select to vote in the PC election but not the Board election, but I think that’s okay, because in any case, the quorums are defined as percentages of those members that explicitly choose to vote in each separate election. I expect an annual, single “do you want to vote” email with options to vote for the Board and the PC. I don’t think it’s possible to blow up the Board elections via an influx of PSF members who only intend to vote in the PC election.
The thing is, the PSF mostly don’t send those emails any more, since voting in the Board election is accepted as intention to vote in the following year’s election as well. That change was made based on member feedback that they didn’t like having to re-enrol to vote every year.
The current wording in PEP 772 doesn’t clearly allow the following conveniences that are allowed for Board elections:
the PSF treating voting in one Packaging Council election as affirmation of the member’s intention to vote in the next one (as is done for Board elections)
PSF members opting out indefinitely from the packaging council elections (this is allowed for PSF membership votes under the definition of voting members in section 4.2 of the bylaws, but the Packaging Council elections are going to have their own separate affirmation)
I think it’s worth being explicit that both of those conveniences are permissible for the Packaging Council elections as well (independently of people opting in or out of other PSF voting activities)
The other related detail that seems worth mentioning in an appendix is a non-binding suggestion on how to notify existing PSF members of the opportunity to become a Packaging Council elector. It seems to me that they should be explicitly asked “Do you wish to receive a ballot for the initial Packaging Council election?”, with three responses available:
Yes, I wish to receive a ballot
No, but ask again next election cycle
No, and don’t ask me again
Before each packaging council election, that query would be sent again to any PSF member that hadn’t voted in the previous packaging council election and hadn’t opted out indefinitely.
I see the first convenience in the bylaws, and PEP 772 should add the same language.
The corporation may choose to waive the affirmation requirement for any member who has voted in the most recent preceding regular Board of Directors election.
But the second one (opting out indefinitely) I must be missing the language in the bylaws.
My inclination is to not include this in the PEP, which serves as the constitution for the Packaging Council.
Just two nitpicks. The Draft PEP refers to the PSF bylaws, but then explicitly states that “Packaging Council Electors must affirm their intention to vote in Packaging Council elections every year” without stating that the affirmation requirement might be waved. In order to have symmetry between PSF board and Packaging Council elections (without changing the PSF bylaws), it might help to add the following sentence to the PEP:
The PSF [or: The Packaging Council, or: The Python Steering Council] may choose to waive the affirmation requirement for any member who has voted in the most recent preceding regular Packaging Council Election.
Alternatively, one could also add [...] or in the most recent preceding PSF Board of Directors election or something more vague.
Another nitpick: The paragraph “In a Council election, if more than two of the top five vote-getters work for the same employer, then…” is only directly applicable if all 5 members are to be elected (which is supposed to only happen for the first election or after a vote of no confidence). Since it is clear what is meant, one could just add a clarification along the lines If fewer than five members are to be elected, an analogous procedure is applied in order to guarantee that no more than two members of the whole Council work for the same employer.
Thanks. I think this is similar to the issue that @ncoghlan brought up. I’ve thought about this more, but before I make any changes I want to have a conversation with the PSF to a) get their feedback on the annual affirmation process; b) ensure they are aligned with this PEP.
It’s implied by the way the first part of section 4.2 is phrased:
Members of any membership class with voting rights must affirm each year to the corporation in writing that such member intends to be a voting member for such year.
There’s nothing in the by-laws that actually requires the PSF to remind people of the affirmation requirement. The reminders are sent anyway so folks don’t get unexpectedly surprised by the requirement when an election rolls around and they don’t receive a ballot because they hadn’t affirmed their intention to vote.
This is fantastic to see! Thanks to all who brought this about.
One point of clarification, the PEP explicitly states that council nominees do not need to be PSF members but what happens if such an individual is elected? Do they become a PSF voting member?
Some maybe corrections. In Annual elections for all Council members
automatic removal of inactive voters
seems to be leftover working from the earlier draft? This makes it sound as though abstaining PSF members might have their membership revoked.
Likewise, the quorum in Election of the Packaging Council also seems to be from the older membership model.
Quorum for Packaging Council votes (either cohort election or votes of no confidence) is 50% of Electors.
However I may be mis-reading the quorum consensus from the other thread.
On the PSF front, I’m pleased to be able to share the following recommendation to the Board on behalf of the current Packaging Working Group:
The PSF’s Packaging Working Group was created primarily to give the PSF Board and staff advice on effectively directing sponsorship funds earmarked to support PyPI and the wider Python packaging ecosystem. We believe the proposed Packaging Council will be able to perform that role more effectively than the WG is able to do in its current form. Accordingly, the current Packaging WG explicitly endorses PEP 772’s proposal to dissolve the WG and replace it with a Packaging Council directly elected by the PSF’s voting membership, and recommends that the PSF Board vote in favour of the PEP.
(And back to speaking solely for myself again). That recommendation isn’t binding on the Board (none of our recommendations are), but the PEP falls squarely in the area of responsibility where the PSF staff and/or Board would historically request our advice, so I figured we should put forward an explicit statement from the WG before the PEP was formally submitted. The wording is intentionally broad, so as long as the “directly elected by the PSF’s voting membership” aspect of the proposal remains intact, the endorsement will hold.