I don’t think it’s an entirely new thing in the software world, and I don’t even think that it’s a new thing in the Python space.
Yes, the SC primarily officially owns CPython, but that ownership gives them tons of power that allows them to apply requirements to other related projects. For instance, mypy isn’t owned by the SC, but the fact that the SC owns the typing PEPs through their ownership of CPython means that there’s weight behind the SC decisions.
On the rust side, they have the “devtools team”, which is broken up into smaller teams like the “Cargo team”, the “clippy team”, etc. So the individual projects are owned by the overall dev tools team (which is itself owned by the rust project), and they’ve all agreed to use their RFC process for everything, not just standards but pretty much all major decisions.
So there’s a few things about this, and I don’t have a perfect answer, but a few random thoughts:
- I envision this as a mission not a mandate, if the council decides that some particular project should be part of the default tooling and they want to delegate that ownership… that’s probably okay?
- I think that there is benefit to this council owning the experience, but it’s possible the ownership aspect is too sticky, and we should just drop that part. The question then becomes what can they do? Do they own ensurepip/the cpython experience? Do they own packaging.python.org?
I assume PyPI / pip would need to be the “default” for now anyways, it would be up to the council what to do from there. If PyPI/pip wanted to not be owned by the council, I think both projects get that choice, but if either say no, it effectively means that the idea of ownership within the council is DOA, and we just simply can’t include that.
I think that this is a mischaracterization or misunderstanding of what is being proposed and the reasons for these discussions.
We already have a process for defining standards and it works reasonably well. If the solution to the problems we’re having were just to define another standard, then this discussion wouldn’t exist.
The problem we’re running into is that the only thing we have a process for decision making with is standards, so we’re forced to try and turn everything into a standard, even if it doesn’t make sense for it to be, and anything that can’t be hammered into a standards shape we just sit here and endlessly discuss with no forward movement. Thus the governing body is designed to provide a means to make those much larger or vaguer decisions.
I also think that the idea of code ownership is a relatively small part of the overall idea, and it could be done without it. However, I do think we lose something without it. The key thing is we effectively already have this in the current system, we just have it implicitly. PyPI and pip tend to just implicitly act as the enforcement mechanism, which in large part stems from the fact that Paul and Myself are the default decision makers for those PEPs, and also can ensure that . The code ownership aspect of this idea, is, in my opinion simply formalizing that existing implicit relationship.
I do not think that ownership has anything to do with trying to decide standards through implementation defined standards vs actual standards. Nor do I think that it means that we’re repeating the distutils saga (a and I don’t think the distutils problems had anything to do with ownership). Nor do I think that anything in this means that there will no longer be consensus based decision making.
The ultimate question becomes, when we can’t come to a consensus, what do we do? Right now the answer is that we frustrate everyone involved by long, never ending discussions that will never go anywhere where everyone agrees that something should happen, but nobody agrees on anything else.