I like the initiative of starting a discussion about this, I fully agree that governance in the community is a weak point we should consider improving.
Firstly though, I want to say that you @grahamc are in a bit of a weird spot right now:
- You’re the owner of Determinate Systems, which recently published Zero to Nix, prompting the doc team member @domenkozar to leave the team, and the previous doc team lead @lucperkins (also from Determinate Systems) to step down from the team too. For unrelated reasons another member @Mic92 also left the team at around the same time, leaving only me and @fricklerhandwerk in the team. While discouraging, we’re now building up the team again. Adding to that, I’m not impressed by the most recent (though first ever) Board statement trying to reconcile these events, especially given that you should’ve had insight into that post beforehand, since:
- You’re also a NixOS Foundation board observer, therefore being able to participate in the Foundation Board meetings and having an influence on their decisions. However it seems like you didn’t inform the board about this post, which I discovered after talking to some board members. Therefore this initiative could be seen as you trying to take a leading part of such a new governance to replace the current Foundation board.
Whether that’s your intention or not, I don’t think the Foundation board needs to be replaced or changed, but we should reinforce where the Foundation fits:
- The Foundation is there for administrative tasks like trademarks, finances, events, legal matters, copyrights, etc. There’s no need to decide Foundation board members using community votes, because this doesn’t influence the community.
- The community governance structure in turn should hold authority, delegate permissions and make decisions over the homepage, repositories and community channels. It should work together with the Foundation when necessary. This structure is where we can benefit from the community voting on members, since it directly impacts the community.
But no matter the current events and your position, I fully agree with the idea that we need to improve governance. In that regard I think we should be more concrete about what existing problems we’re actually trying to solve, I’d like to mention these points:
- Bluntly, @edolstra being the BDFL of Nix. While this has improved somewhat for the Nix codebase with the recent formation of the Nix team, I don’t think that’s the end of the story, there’s more than just the Nix codebase that @edolstra still holds absolute authority over, and there’s no path for others to take over. I appreciate @grahamc’s explicit mention of BDFL’s being disallowed in ASF’s model, despite Determinate Systems employing @edolstra.
- Teams not truly owning the parts they’re trying to work on. For example the documentation team (which I’m part of) has barely any authority over Nixpkgs, NixOS and Nix documentation. It only has authority only over the on-its-way-to-be-official https://nix.dev/ (generously donated by @domenkozar!). Similarly the Nixpkgs Architecture Team (which I’m also part of) not having authority over the Nixpkgs architecture. Currently the RFC process is used instead, which somehow works (RFC 140 is going, needs shepherds though!), but it’s really slow and takes a lot of time.
- No flow to give or take away permissions. The best thing right now is this Nixpkgs issue used for people to request commit access to Nixpkgs, and @domenkozar occasionally going through it and giving the bits. On the other hand, while there’s an RFC to remove inactive people again, I don’t think it’s been implemented yet. These processes barely work, but this is just Nixpkgs, there’s a lot more parts of the ecosystem.
Currently this is only a discussion though, to actually make this a reality a lot more is needed. I’m not sure if you had any plans for this already, but if not I’d like to start an open working group to discuss and work on this issue.