Nah donât blame yourself, youâre doing great work. I donât think thereâs anybody in particular to blame.
Personal generic RFC rant incomingâŚ
I think as a community weâve collectively realised that the RFC process really doesnât work that well, Iâve (at least privately) complained about this for years. I believe one of the main reasons for the RFC process being created was to make substantial decisions that might have many differing opinions by assigning ad-hoc decision-makers (shepherds), especially when thereâs no clear ownership (such as Nixpkgs). While nice in theory, in practice it leads to various problems:
- The expectation to reach consensus in the discussion means shepherds arenât very empowered, while having a lot of responsibility at the same time â burnout as discussions stretch out
- This in turn discourages people to even nominate as shepherd in the first place, leaving only very few to go for it, if enough shepherds can be found at all (originally the RFCSC was meant to have a choice in picking shepherds!).
- Shepherds being potentially distinct from actual code owners makes it unclear whoâs actually authorative, especially if you just barely have enough shepherds to even get a shepherd team (where does the authority come from if any person is accepted as shepherd?)
- Then you also get non-controversial decisions where barely any discussion is necessary, but you also canât get enough shepherds just to make it move forward.
I think this all boils down to: We need clear ownership for everything. If I point to any official byte, everybody should be able to agree who can change it. And until recently, there was a big void in overall ownership, which is now filled with the Steering Committee: It acts as the fallback authority for any technical/social decisions, and can delegate/reclaim that authority as desired. Even if the SC isnât being very visible, theyâre handling various issues that mightâve required RFCs before.
While I still view RFC documents as incredibly useful, as well as broad community discussions around them, Iâd want the decision power to be in the hands of a team with the appropriate authority, as affirmed via the SC (and if anybody doesnât like what the SC does, cast your vote as such in the next election!).
Concretely, imo we should use something akin to Architectural Decision Records in the respective repos, therefore putting the repo owners in charge of deciding it by default. And if ownership is contended (e.g. Nixpkgs), we can propose to the SC to make a call by opening a PR to the org repo with a concrete proposal as to who should own what, to be approved/merged by the SC, or if you think itâs a more sensitive manner, in private.
@rhendric So, even more concretely for the Nix language change youâre proposing, Iâd suggest just opening a PR to Nix with one of the patches that you think is best and the RFC document included. Of course this is probably going to run into the Nix teamâs limited availability (would love for them to get more support), but itâs much closer to being implemented than if we pretend that the shepherds (none of which are Nix team members) will bring the RFC to conclusion in a satisfying manner.