Skip to content

PEP 772: Updates based on conversations at PyCon #4429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

warsaw
Copy link
Member

@warsaw warsaw commented May 20, 2025

  • Align PPC Electors with PSF voting members as described in the PSF bylaws. Rather than the previous categories, this approach is generally deemed to be both equitable and workable.
  • Update the mechanics and timeline of PPC elections, into three phases: self-selection of Electors, nominations of Council members, voting
  • Remove the language around initial membership and adding a new member, as these are no longer necessary.
  • Add language about the call for deanonymization of ballots in cases where foul play is suspected.
  • Clarify the PSC's role in approving changes to this PEP, and responsibilities in certain corner cases of the election process.
  • Explicitly disallow PSC members from concurrently serving on the PPC.
  • Clarify language around the expectation of the PSC and PSF to adjust existing standing delegations
  • Unify language around "Packaging Council Electors" rather than "voting members"
  • Added an acknowledgments section
  • Various spelling, grammar, and wording fixes

📚 Documentation preview 📚: https://pep-previews--4429.org.readthedocs.build/pep-0772/

* Align PPC Electors with PSF voting members as described in the PSF bylaws.  Rather than the previous
  categories, this approach is generally deemed to be both equitable and workable.
* Update the mechanics and timeline of PPC elections, into three phases: self-selection of Electors,
  nominations of Council members, voting
* Remove the language around initial membership and adding a new member, as these are no longer necessary.
* Add language about the call for deanonymization of ballots in cases where foul play is suspected.
* Clarify the PSC's role in approving changes to this PEP, and responsibilities in certain corner cases of the
  election process.
* Explicitly disallow PSC members from concurrently serving on the PPC.
* Clarify language around the expectation of the PSC and PSF to adjust existing standing delegations
* Unify language around "Packaging Council Electors" rather than "voting members"
* Added an acknowledgments section
* Various spelling, grammar, and wording fixes
@warsaw warsaw requested a review from pradyunsg as a code owner May 20, 2025 15:19
@warsaw
Copy link
Member Author

warsaw commented May 20, 2025

@pradyunsg @geofft (seems I can't tag Deb). Here's an update that I think captures everything we've been talking about. I'll share with Deb for her approval via Slack.

@hugovk
Copy link
Member

hugovk commented May 20, 2025

(seems I can't tag Deb)

cc @eximious

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The modified paragraphs have been wrapped to ~110 chars, could you rewrap to ~80?

warsaw and others added 3 commits May 20, 2025 10:42
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Copy link
Contributor

@geofft geofft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together, Barry! This looks good with regard to the conversations we had

Comment on lines 275 to 277
receiving wages for current work, officer/director roles, and 25% or more ownership stake. PSF membership at
any member class (as defined by Article IV of the PSF bylaws) does not count as an affiliation for this
purpose.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, this is what the old version meant by "PSF members are exempt"! (I read that as "Three PSF members who work for the same company are okay.")

I don't think I would have thought that membership in any large membership organization would count. I think this rule is good, but I think actually spelling it out like this makes it sound like membership in other organizations (IEEE, OSI, Linux Foundation, Debian, PyPA, a GitHub org/team, a school, or even totally non-tech organizations like a political party or a religious denomination, or for that matter the current Packaging Council itself) would count. Can we rephrase this to be a little more generic?

FWIW the Linux Foundation bylaws seem to have tried to address this in 5.3(g), which phrases it as "employed by or performing monetarily compensated services for" an LF member company/org (since the membership is companies/orgs). I think we could plausibly relax the restriction to just compensated work, and say that non-compensated work (officer/director) or compensated non-work (ownership/investment) isn't a problem.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just noticed that this text is patterned after PEP 13. It might be worthwhile to match that text as far as possible (or, alternatively, have this be text that we believe is suitable for an update to PEP 13).

Notably, PEP 13 just has "work for any single employer", and does not have the "significantly affiliated" text. So the question about organizational membership does not arise.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notably, PEP 13 just has "work for any single employer", and does not have the "significantly affiliated" text. So the question about organizational membership does not arise.

I would remove "significantly affiliated" completely.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned, the "single employer" provision in PEP 13 is pretty darn loose and left to interpretation. E.g. what if you get an SC with members who work for Microsoft, GitHub, LinkedIn, Xamarin, and Xandr? We've interpreted that in the past as "its subsidiaries" are disallowed even though there probably is almost no practical undue influence possible.

Should we just align PEP 772 language with PEP 13 language and leave it similarly ambiguous?

In order to avoid any appearance of conflict of interest,
at most 2 members of the council can work for any single employer.

In a council election, if 3 of the top 5 vote-getters work for the
same employer, then whichever of them ranked lowest is disqualified
and the 6th-ranking candidate moves up into 5th place; this is
repeated until a valid council is formed.

During a council term, if changing circumstances cause this rule to be
broken (for instance, due to a council member changing employment),
then one or more council members must resign to remedy the issue, and
the resulting vacancies can then be filled as normal.

Copy link
Contributor

@willingc willingc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, a much improved document. I've left some comments largely related to simplifying language for better clarity.

* A more stable packaging ecosystem that is more responsive to community input.
* Increased transparency and clearer shared goals for the packaging ecosystem.
* Increased tactical and fundraising support from the PSF, to increase capacity
* Facilitate a more stable packaging ecosystem that is more responsive to community input.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be good to explicitly call out decisions and documentation about interface and protocol standards.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Pronounce on and promote APIs, protocols, interfaces, and other interoperable standards relevant
    to Python packaging.

Comment on lines 275 to 277
receiving wages for current work, officer/director roles, and 25% or more ownership stake. PSF membership at
any member class (as defined by Article IV of the PSF bylaws) does not count as an affiliation for this
purpose.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notably, PEP 13 just has "work for any single employer", and does not have the "significantly affiliated" text. So the question about organizational membership does not arise.

I would remove "significantly affiliated" completely.

Comment on lines 328 to 330
In exceptional circumstances, it may be necessary to remove someone from the Electors against their will (for
example: egregious and ongoing code of conduct violations). An Elector may be removed by a two-thirds majority
vote by the Packaging Council (in practice: 4:1 for a Council with five members).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In exceptional circumstances, it may be necessary to remove someone from the Electors against their will (for
example: egregious and ongoing code of conduct violations). An Elector may be removed by a two-thirds majority
vote by the Packaging Council (in practice: 4:1 for a Council with five members).
In exceptional circumstances, such as egregious and ongoing code of conduct violations, an individual may be removed from the Electors roll. An individual may be removed from the Electors roll by a two-thirds majority
vote by the Packaging Council (in practice: 4:1 for a Council with five members).

participate in the vote. They are removed from the Packaging Council if the
vote removes them as a voting member. The vacancy is filled as per the process
for filling vacancies in the Packaging Council.
If the relevant Elector is also on the Packaging Council, then they can participate in the vote. They are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the individual removed from the Electors roll is also on the Packaging Council, they lose the privilege to vote in future elections. The seated Packaging Council may vote to remove the individual from the Council, and the individual must abstain from a removal vote. The vacancy ...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't follow this. (An individual removed from the Electors roll always loses the privilege to vote in future elections, regardless of who that individual is, because that's what it means to be removed. Also the Packaging Council was the body that voted to remove them as an Elector; why vote twice, and possibly differently, to keep them on the Council?)

warsaw and others added 7 commits May 21, 2025 12:54
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
@warsaw
Copy link
Member Author

warsaw commented May 21, 2025

I pushed an update and resolved as much of the conversation as I could, but some of the threads were difficult! Anyway, I'll take another pass through this after a bit, but PTAL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants