Finding a new administrator for Steering Council elections

One of the most important things I have ever fostered is the trust of the Python community, and I am truly grateful that this trust has been communicated in so many ways.

Administration of elections for the second era of governance for the language is unspeakably valuable to me.

But I have come to the decision that it is time to ask that this responsibility is reassigned.

Not because I am increasingly old, fragile, or vulnerable as a cyclist! But because I believe that transitions are natural and crucial to the strength of any group. We must practice these things to remain durable.

So with that, in the shadow of my eighth service as election administrator for the Python Steering Council, I ask that the newly elected 2026 Steering Council and the Core Developers begin the process of deciding how future elections will be administered.

I don’t quit! This is not a resignation! If we find ourselves without a new path in ten months I would be just as honored then as I was the first time I was asked to be entrusted.

49 Likes

Thank you Ee for your support with the SC elections!

I’m interested to know about what we want from the election administrator.

  1. What access rights is needed in order to administer the election? Does it need to be someone very close to the PSF. eg infrastructure team member, PSF staff? can any PSF member do this? Can anyone in the world do this?
  2. Does it require certain technical skills? If so, what are the skills needed?
  3. What access does the election administrator have? From what I see, the administrator have access to personal information like the voters list and their email addresses. Anything else?
  4. Is there a requirement of who can/cannot be an administrator? I’m assuming people planning to run in the election should not be administering it. What about the voters themselves?

Also I assume this will be a volunteer role, right?

Perhaps these questions can help us with coming up with criteria for selecting the next election administrator.

12 Likes

I just wanted to chime in and thank you for your years of service as election administrator. The SC elections have gone incredibly smoothly, and the change to a new voting system and ballot method, it was once again super well run. Often, folks behind the scenes only get noticed when things go wrong, so I want to take this opportunity to give much kudos for things that have gone right. I know everyone is incredibly grateful.

:100:

17 Likes

In addition to @Mariatta’s excellent questions, it would be good to hear an estimate of the time commitment required. To judge from feedback so far, people are overwhelmingly happy with the new voting method and voting service, so I assume those won’t change, so one-time “startup costs” won’t recur.

A fine point only the community can answer: the election admin controls the list of email addresses of people who can vote, which they upload to the voting service’s admin web UI. It’s the one part of the system that isn’t subject to independent verification. We take it on trust that, e.g., the admin won’t “stuff the ballot box” with sock puppet email addresses they secretly control. We’d never know. The only thing we can see is gibberish “ballot IDs” generated by the voting service, from which nothing about voter identities can be inferred (not even by our election admin!).

Which is fine by me! I certainly have total trust in @EWDurbin’s integrity.

But, for that reason, it’s probably best if the election admin and their family have no immediate personal stake in election outcomes. So no candidates. or voters.

Which I don’t actually care much about (my trust in core devs is generally very high, and “the stakes” in this kind of election are relatively minor - scant temptation to cheat, or for anyone to try to bribe the admin).. But still better safe than sorry.

1 Like

To manage permissions, topics, and moderate the Steering Council Nominations subcategory in order to manage who can post what/when to open/close elections and replies, announce election progress, and manage visibility of old messages to avoid confusion.

And access to python/voters private repository to generate and maintain the voter roll for the election.

Familiarity with Python, toml, git, and GitHub are good, but not strictly necessary to maintain and generate the voter-roll via python/voters.

The election administrator can also see who has cast ballots, but not what those ballots contain.

This is a decision for the Steering Council and Core Developers.

This is a decision for the Steering Council and Core Developers.

Overall, approximately 12-16 hours over the course of a couple months (note many links will be inaccessible to non core devs as they go to the private psf/voters repo:

  • Preparation of the PEP specifying the election, see examples from past years.
  • Generate initial voter roll based on python/voters see examples from past years
  • Send notifications to core developers who would be marked as inactive an ineligible to vote based on python/voters tooling.
  • Announce the opening of the nominations period and set permissions on the subcategory to allow core developers to create new topics and anyone to reply, see examples from past years
  • Moderate new topics and replies to the Steering Council Nominations subcategory
  • Announce the closing of the nominations period and set permissions to disallow new topics examples from last years
  • Prepare an update to psf/voters with responses from inactive Core Developers, see examples from past years
  • Update permissions on the Steering Council subcategory to disallow replies
  • Update the PEP with nominations, see examples from past years
  • Open the election! configure the election as described in the PEP, upload voter roll, and send email notifications.
  • Announce that the election has started, see examples from past years.
  • Monitor for core developers who expect a ballot, but did not receive one. Notify Steering Council of any situations where a core developer has concerns that they are ineligible.
  • Close the election, audit for conflicts of interest per PEP 13 regarding composition of the newly elected SC.
  • Announce the results, see examples from past years
  • Update the PEP with the results, see examples from past years

Along with any other number of small things…

14 Likes

Thanks for spelling it out, @EWDurbin! You’re closing your tenure with the same mix of detail, precision, and efficiency that made you a pleasure to work with all along :smile:.

6 Likes