@@ -115,6 +115,8 @@ will:
115115
116116* Work with PSF staff and the newly formed `User Success Workgroup `_ toward
117117 improving the user experience around packaging.
118+ * Pronounce on and promote APIs, protocols, interfaces, and other interoperable standards relevant
119+ to Python packaging.
118120* Facilitate a more stable packaging ecosystem that is more responsive to community input.
119121* Increase transparency and clearly share the goals for the packaging ecosystem.
120122* Facilitate tactical and fundraising support from the PSF, to increase capacity
@@ -159,7 +161,10 @@ The council shall:
159161
160162To use its powers, the Packaging Council votes. Every Council member must either vote or explicitly
161163abstain. Members with conflicts of interest on a particular vote must abstain. Passing requires
162- support from a majority of non-abstaining Council members.
164+ support from a majority of non-abstaining Council members, which requires a quorum of 3
165+ non-abstaining members. If the Packaging Council cannot (e.g., by lack of quorum) or wishes not to
166+ come to a decision on its own, it can also refer the matter to the Steering Council, whose decision
167+ on the matter will be binding.
163168
164169Whenever possible, the Packaging Council is expected to share its decisions and processes
165170publicly in a timely fashion.
@@ -208,22 +213,11 @@ A Packaging Council election consists of the following phases:
208213
209214Each phase will last two weeks.
210215
211- The Packaging Council election process is managed by one Returning Officer nominated by the Python Steering
212- Council. The PSF shall maintain records of the elections as well as run the annual election for the
213- Packaging Council.
214-
215- Ballots are ordinarily kept anonymous to all (including the Returning Officer) but with sufficient information
216- to deanonymize them. Deanonymization requires a supermajority (two-thirds) vote of at least two of the Python
217- Steering Council, the PSF Board, and the current Packaging Council. Deanonymization must only be done to
218- investigate the possibility of coordinated/inauthentic activity in the Packaging Council election that does
219- not, in the view of the bodies that vote to deanonymize, accurately represent the Python Packaging community.
220- The proposal to deanonymize must identify to whom ballot identities are revealed (which cannot be the general
221- public). "Anonymous" in this context shall be deemed to include software that can show identities to the
222- Returning Officer or their designees in response to explicit user action, provided it does not show it by
223- default.
224-
225- It is expected that any deanonymization request acted on will be followed by a proposal to change this PEP in
226- order to address any identified irregularities that precipitated such a request.
216+ The Packaging Council election process is managed by a returns officer nominated by the Python
217+ Steering Council. The PSF shall maintain records of the elections as well as run the annual
218+ election for the Packaging Council. The Steering Council must certify the results of the election
219+ and may work with the returns officer in whatever capacity is necessary to validate the integrity of
220+ the election.
227221
228222
229223Term
@@ -269,12 +263,12 @@ Packaging Council members to fill the vacancies, or call for new Packaging Counc
269263Conflicts of interest
270264---------------------
271265
272- No more than two Packaging Council members may be employed by or significantly affiliated with the same
273- entity. An entity is a company and its subsidiaries, or another incorporated entity such as a non-profit or
274- educational institution with its own mission and goals. Significant affiliation includes, at the least,
275- receiving compensation for current work, officer/director roles, and 25% or more ownership stake. PSF membership at
276- any member class (as defined by Article IV of the PSF bylaws) does not count as an affiliation for this
277- purpose.
266+ No more than two Packaging Council members may be employed by the same entity. An entity is a
267+ company and its subsidiaries, or another incorporated entity such as a non-profit or educational
268+ institution with its own mission and goals. Significant affiliation includes, at the least,
269+ receiving compensation for current work, officer/director roles, and 25% or more ownership stake.
270+ PSF membership at any member class (as defined by Article IV of the PSF bylaws) does not count as an
271+ affiliation for this purpose.
278272
279273While we expect and trust Packaging Council members to act in the best interests of Python rather than
280274themselves or their affiliations, the mere appearance of any one such organization dominating Python
@@ -307,10 +301,11 @@ Responsibilities
307301
308302Packaging Council Electors participate in formal votes to elect the Packaging Council.
309303
310- The eligibility of Packaging Council Electors is equivalent to the Article IV, section 4.2 voting membership
311- defined in the `PSF Bylaws <https://www.python.org/psf/bylaws/ >`_. Should those bylaws change in the future,
312- the eligibility of Packaging Council Electors will similarly change to match. As with PSF voting membership,
313- Packaging Council Electors must affirm their intention to vote in Packaging Council elections every year.
304+ The eligibility of Packaging Council Electors is equivalent to the Article IV, section 4.2 voting
305+ membership defined in the `PSF Bylaws <https://www.python.org/psf/bylaws/ >`_. Should those bylaws
306+ change in the future, the eligibility of Packaging Council Electors will similarly change to match.
307+ As with PSF voting membership, Packaging Council Electors must affirm their intention to vote in
308+ Packaging Council elections every year.
314309
315310.. _process :
316311
@@ -325,36 +320,27 @@ for two consecutive Council elections automatically removes a person from the li
325320Electors, until they re-submit their intention to resume their participation to the Packaging Council in
326321writing.
327322
328- In exceptional circumstances, it may be necessary to remove someone from the Electors against their will (for
329- example: egregious and ongoing code of conduct violations). An Elector may be removed by a two-thirds majority
330- vote by the Packaging Council (in practice: 4:1 for a Council with five members).
331-
332- If the relevant Elector is also on the Packaging Council, then they can participate in the vote. They are
333- removed from the Packaging Council if the vote removes them as an Elector. The vacancy is filled as per the
334- `normal process <vacancy >`_.
335-
336323Vote of no confidence
337324---------------------
338325
339- In exceptional circumstances, the Electors may remove a sitting Council member, or the entire Council, via a
340- vote of no confidence.
341-
342- A no-confidence vote is triggered when an Elector calls for one publicly on an appropriate public
343- communication channel, and another Elector seconds the call within one week .
326+ In exception circumstances, a vote of no confidence may be called to remove a sitting Packaging
327+ Council member, or the entire council. The Python Steering Council may call such votes of no
328+ confidence, with no second being necessary. Anyone may request such a vote of no confidence from
329+ the Steering Council, regardless of the requester's membership or affiliation, and the Steering
330+ Council has full discretion to call for the vote or not .
344331
345- The vote lasts for two weeks. Each Elector votes for or against. If at least two thirds of Electors express a
346- lack of confidence, then the vote succeeds. Quorum for a vote of no confidence is 50% of Electors.
332+ The vote of no confidence lasts for two weeks. Each Elector votes for or against. If at least two
333+ thirds of Electors express a lack of confidence, then the vote succeeds. Quorum for a vote of no
334+ confidence is 50% of Electors.
347335
348336There are two forms of no-confidence votes: those targeting a single member, and those targeting the Council
349337as a whole. The initial call for a no-confidence vote must specify which type is intended. If a single-member
350338vote succeeds, then that member is removed from the Council and the resulting vacancy can be handled by the
351339`normal process <vacancy >`_. If a whole-Council vote succeeds, the Council is dissolved and a new Council
352340election is triggered immediately, using the rules for `whole Council <whole-council >`_ elections.
353341
354- If a no-confidence vote fails, another identical no-confidence
355- vote (that is, of the same form, and against the same member for
356- the first form) may not be raised for six months from the initial
357- call.
342+ If a no-confidence vote fails, another identical no-confidence vote (that is, of the same form, and
343+ against the same member for the first form) may not be raised for six months from the initial call.
358344
359345-----------------------
360346Changing the governance
@@ -392,11 +378,16 @@ serve.
392378Elector eligibility
393379-------------------
394380
395- Previous iterations of this PEP's draft proposed different membership rules for identifying the Packaging
396- Council Electors. After extensive discussion among stakeholders, and after seeking the widest possible
397- feedback, the PEP authors agreed that aligning Packaging Council Electors with PSF Board voting membership was
398- both the most workable arrangement and the most equitable approach
399- to include all parts of the Python packaging community.
381+ Previous iterations of this PEP's draft proposed different membership rules for identifying the
382+ Packaging Council Electors. After extensive discussion among stakeholders, and after seeking the
383+ widest possible feedback, the PEP authors agreed that aligning Packaging Council Electors with PSF
384+ Board voting membership was both the most workable arrangement and the most equitable approach to
385+ include all parts of the Python packaging community.
386+
387+ PSF membership is used here because it is open to the broadest possible Python community. In
388+ particular, most people doing Python packaging work, do so in public, including contributing to both
389+ PyPA and non-PyPA projects, are likely to be eligible for PSF "Contributing Membership" based on
390+ that work, without paying any membership fee.
400391
401392-------------------------------
402393Approval voting in the election
0 commit comments