Implementing PEP 609: PyPA Governance

Hurray! We have formalized the governance of the PyPA. :tada:

I think our next steps would be to actually implement the changes the PEP outlines:

  1. Adopt PSF CoC on all the PyPA projects (and drop the PyPA CoC), using the files that GitHub recognises.
  2. Get the pypa-committers mailing list up-to-date (and a way to maintain this?)
  3. Work with the SC on the PEP process-related changes
    • Determine a list of “who from PyPA can be a PEP sponsor” – this needs a dedicated discussion, and a committer vote IMO (so blocked on 2. above)
    • Get clarity on the process for changing PEP 0 for namespacing.
    • Get clarity on how to provide list of “PyPA sponsors” to the SC / PEP editors.

@EWDurbin any thoughts on how to make 2. happen?

3 Likes

This can be done by putting (for example) CODE_OF_CONDUCT.md in an organisation-wide https://github.com/pypa/.github repo, so it doesn’t need to be added individually to all project repos.

2 Likes

I created https://github.com/pypa/.github/ as well as https://github.com/pypa/.github/pull/1/ to add the PSF CoC.

1 Like

For #1, I’ve merged https://github.com/pypa/.github/pull/1, I think next steps would be removing the PyPA CoC from http://github.com/pypa/ repos – @hugovk perhaps you’d be interested in doing that?

For #2, I’ll work on setting up this list.

Sure, something like https://github.com/pypa/get-pip/pull/70/?

The existing link is to https://www.pypa.io/en/latest/code-of-conduct/, which says:

All PyPA contributors and maintainers are expected to follow the PSF Code of Conduct. Please see PyPA-specific details.

(PyPA previously had its own code of conduct separate from PSF’s; PEP 609 switched PyPA to PSF’s Code of Conduct.)

Is that existing link okay, or would it better going direct to https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md or elsewhere?

On that PR, @pradyunsg suggested linking directly to https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md because it skips needing to click through an extra link to get to the relevant reporting details, so I’ll go for that one. :+1:

Edit: There we go! That should be the lot:

  1. https://github.com/pypa/get-pip/pull/68
  2. https://github.com/pypa/virtualenv/pull/1911
  3. https://github.com/pypa/pip/pull/8651
  4. https://github.com/pypa/pypa.io/pull/59
  5. https://github.com/pypa/warehouse/pull/8338
  6. https://github.com/pypa/manylinux/pull/690
  7. https://github.com/pypa/packaging.python.org/pull/760
  8. https://github.com/pypa/setuptools/pull/2291
  9. https://github.com/pypa/twine/pull/680
  10. https://github.com/pypa/auditwheel/pull/256
  11. https://github.com/pypa/pipenv/pull/4405
  12. https://github.com/pypa/packaging/pull/326
  13. https://github.com/pypa/pipfile/pull/129
  14. https://github.com/pypa/pypi-support/pull/519
  15. https://github.com/pypa/wheel/pull/361
  16. https://github.com/pypa/setuptools_scm/pull/466
  17. https://github.com/pypa/python-manylinux-demo/pull/27
  18. https://github.com/pypa/readme_renderer/pull/171
  19. https://github.com/pypa/linehaul/pull/53
  20. https://github.com/pypa/interoperability-peps/pull/73
  21. https://github.com/pypa/forklift/pull/2
  22. https://github.com/pypa/wheel-builders/pull/4
1 Like

Hurray! Thanks a lot for doing this @hugovk! ^.^

1 Like

Because Discourse is nice, I’ve added a checklist to the first-post here, and checked off the first box. :slight_smile:

1 Like

OK, I’ve found a way to get every user with the commit bit in the GitHub org. I don’t have everyone’s email address, however. I’ve added all the users I do have emails for, but I’m missing the following:

dholth           pip scripttest packaging-problems get-pip virtualenv pip-test-package browntruck pypa-docs-theme sampleproject get-virtualenv wheel
dwighthubbard    bandersnatch
erinxocon        pipenv
idlesign         packaging-problems setuptools
Ivoz             pip scripttest packaging-problems get-pip virtualenv pip-test-package browntruck pypa-docs-theme sampleproject get-virtualenv
JustinCappos     packaging-problems interoperability-peps pypa.io
ken-reitz        pipenv pipfile
matthew-brett    wheel-builders auditwheel manylinux python-manylinux-demo
mayeut           wheel-builders auditwheel manylinux python-manylinux-demo
natefoo          wheel-builders auditwheel manylinux python-manylinux-demo
pjenvey          packaging-problems get-virtualenv virtualenv
r1chardj0n3s     packaging-problems sample-namespace-packages packaging.python.org pypa-docs-theme interoperability-peps pypa.io
rmcgibbo         wheel-builders auditwheel manylinux python-manylinux-demo
vphilippon       pipenv

If you have a way to contact these people (or are one of these people) please ask them to request a subscription to https://mail.python.org/mailman3/lists/pypa-committers.python.org/

(cc @dholth @dwight.hubbard @idlesign @JustinCappos @mayeut)

2 Likes

Maybe create an issue in a GitHub PyPA repo and ping them there?

1 Like

You can reach me at ehashman at debian dot org. (That’s my email on the wheel-builders mailing list :slight_smile: )

Thanks! I’ve subscribed you.

At this point I’ve added everyone that I’m able to and everyone that has reached out to me. Happy to add anyone that is missing but at this point there isn’t much else I can do to get the stragglers.

I think we can check the “Get the pypa-committers mailing list up-to-date (and a way to maintain this?)” checkbox here and I’ll be bringing PyPA as a PSF Fiscal Sponsoree forward for a vote shortly.

Done.

I do think we should send a mail saying “Hey, we’re going to start using this for PyPA-level decision-making votes now, since PEP 609 is now an accepted PEP” before we start the votes (in case there’s folks in PyPA who aren’t keeping up with all-the-things-around-that-governance-discussion. :slight_smile:

Maybe this is a topic for another thread, but in the PyPA as a PSF Fiscal Sponsoree vote, I’m noticing that it’s already very noisy, the votes are public and it seems like it will be somewhat annoying manual task to count the votes.

Is there any way we can move to an implementation where the vote is advertised on PyPA-committers, but conducted via discourse or Helios or some other system that counts the votes for you and doesn’t involve everyone on the list getting an e-mail every time someone votes?

FTR

@pganssle mentioned @

That it is ambiguous what PEP means when it comes to counting the votes proportion. Is it +1’s divided by all possible voters or by those who actually have casted a vote.
@pf_moore seems to agree and I think it’s reasonable to only count the ones who casted their votes too.

Per @dustin’s request, moving my comments on the voting scheme here.

In Dustin’s announcement of the PSF Fiscal Sponsorship vote, he said:

My response asking for a clarification:

As I said on the mailing list, my reading of the PEP is that “at least two thirds of voters” means people who vote. Looking at the full sentence,

Each PyPA committer can vote once, and can choose one of +1 and -1. If at least two thirds of voters vote +1, then the vote succeeds.

I’d have expected that if the intention had been two thirds of everyone, we’d have said “PyPA committers”, not “voters”. But it’s equally likely that we simply didn’t think of the ambiguity.

If we do make it “2/3 of people who voted”, we should really add a quorum mechanism so that proposals that don’t get enough votes can’t get in with minimal support.

1 Like

I agree that ‘voters’ should mean ‘people who cast a vote’, especially as it requires a supermajority.

I also agree with @pf_moore that a quorum requirement would make sense, though I don’t think it’s an urgent need. I’d be happy with a fairly low quorum threshold, like 1/3.

1 Like

Thanks everyone for the feedback. I’ll agree that I seem to have misinterpreted the PEP, I’ll chalk that up due to lack of coffee. It probably makes sense to amend the PEP to say:

- If at least two thirds of voters vote +1, then the vote succeeds.
+ If at least two thirds of recorded votes are +1, then the vote succeeds.

Why not just mute the thread after voting? I think the infrequency in which we’ll conduct a vote doesn’t merit this much overhead. Also, if we don’t actually need 2/3 of voters to participate, there’s even less emails to receive and less votes to count.

1 Like