I agree the process is rocky and could be better for all involved, but I guess–as a maintainer of several packages who does not have and doesn’t really want/need the commit bit–I’m a little skeptical about the value nixpkgs would get out of making all maintainers committers.
Ideally, committers have a fairly good idea of what they’re doing at the nixpkgs level. They probably understand the processes for staging/staging-next, backports, and so on. They hopefully understand what Nix features and language patterns are prohibited and/or discouraged in nixpkgs.
I don’t need to understand nixpkgs-level concerns in order to maintain a small number of packages. It is easier to maintain packages when I can leave higher-level concerns to people who have built up their understanding of nixpkgs from a broad pattern of regular contributions over months or years.
It already makes me uncomfortable to see committers merging their own PRs, but policing that isn’t my job. If we agree (and I imagine we do at least abstractly) that a maintainer-committer shouldn’t be merging their own PRs anyways, they’ll still need another committer.
If you’re proposing giving maintainer-committers a lever that would enable them to merge their own PR, I’d only (personally) agree if it was still signed off on by people with the kind of systemic nixpkgs knowledge that the commit bit usually reflects. Adding a bunch of less-knowledgable maintainer-committers to the class of committers seems to require some new designation to indicate who is trusted to give final sign-off from a systemic perspective.
(I personally imagine quality would devolve if the lever could be pulled after approval by another maintainer-committer who hadn’t demonstrated that ongoing commitment and hopefully accrued the expected knowledge. If we were only willing to grant maintainer-committer status to people who demonstrated this commitment and knowledge, we’d have a lot more unmaintained packages.)
Edit: wanted to more directly address the metaphor:
If I had to maintain cars, servers, plumbing, wiring, or what have you, for a living, I would require the ability to execute
Your changes have the ability to break or disrupt the functioning of an entire system–the whole repository. Nixpkgs committers are people who maintain nixpkgs–not individual packages. People who want to maintain a package with greater degrees of freedom can publish a flake or look into https://github.com/nix-community/NUR.