Since my post the other day I’ve been considering the voting franchise question, specifically in the context of how authority derived from “the consent of the governed” applies in the context of Python packaging tools.
There are two key primary Python community examples to draw from now, and I think they’re both informative: PSF board of directors elections, and Python Steering Council elections. (there are potentially other relevant examples as well, such as the formation of NumFocus, but I don’t personally know enough about them to use them as precedent).
Summarising massively, the PSF board originally started with a narrow franchise (the group now known as PSF Fellows), which was sufficient when it started, when it was primarily about the CPython core developers having a legal entity to manage trademarks and other intellectual property. It was reformulated to a broad voting franchise when its role started to change to cover more active community engagement & promotion (there was a bit of give-and-take there: the role started changing first, there were some questions about the legitimacy of those changes given the narrow voting franchise for the PSF Board, then the now more expansive PSF structure was formulated at least partially in response to those concerns).
The origins of the Python Steering Council were different - that was about allowing Guido to take a step back and be an influential voice amongst peers, rather than having to be the final decision maker on essentially every language and standard library design decision (or at least find someone he trusted to make that decision on his behalf). For that purpose, the required voting franchise was the folks that were coming to Guido to get design questions resolved anyway, which meant there was a clear alignment between active involvement in the CPython project and the formation of the new steering council. Even with the narrow voting franchise, the Python Steering Council is also well positioned to advise the PSF on how to best support the language development process with funding.
The proposed formation of a Python Packaging Council contains elements of both situations, but also some aspects that are relatively novel, hence the best way forward being unclear.
Drawing from the PSF situation, one of the proposed goals of the new council is to provide legitimate authority to define the default user experience offered to new Python users that obtain Python directly from python.org rather than via a redistributor. That impacts a lot more than just the volunteers contributing to PyPA projects, hence a genuinely broad voting franchise would seem appropriate. Previously we only attempted to claim enough authority over this aspect of things to break distutils
out of the standard library, and eliminate setup.py
based interactions with the PyPI service (due to genuine technical problems with both aspects of the tooling UX). The packaging user guide was developed to give folks at least some advice on where to start if they didn’t have anyone else providing more specific guidance, but allowing folks to choose a workflow that suited them rather than dictating anything in particular was an intentional goal in most cases.
The parallel with the Python Steering Council is that any new packaging council will rely entirely on the good graces of the contributors to packaging tools to actually get anything done (while the PSF does have some funding available via flagged donations, it’s only enough to target key enabling and transitional projects, it doesn’t cover ongoing maintenance of essential projects). In that context, a council that contributors see as legimitate will be sufficient to have a genuine impact. The broader Python community will still have indirect influence via the PSF Board, rather than directly influencing the makeup of the packaging council itself.
From a personal perspective, I think following either precedent could work out well, and I doubt either would lead to complete disaster (if a broad franchise elects a council that contributing volunteers ignore that wouldn’t be good, especially if it exacerbated problems with contributor burnout, but the tools themselves would keep functioning, and even the narrower franchises being considered would still be a broader group than the folks that were directly involved in establishing the status quo the better part of a decade ago). I also think there are a few viable “middle of the road” options that could work (such as the “PSF members, but with an extra self-nomination step to participate in packaging council elections” concept).
One other aspect to keep in mind is that it’s likely to be easier to broaden the voting franchise later if a narrow franchise turns out not to be as effective as hoped than it would be to narrow the franchise if a broad voting franchise proves ineffective.