Where did you get stuck in the Nix ecosystem? Tell me your story

TL;DR lack of formal guidelines + too many informal ones for nixpkgs, which leads to bikeshedding, along with not-so-positive experience here either.

I participate mostly by reviewing others’ PRs to nixpkgs. Recently, I decided to submit my own PR to nixpkgs (first contribution). Simple version bump, and added myself as a maintainer, since I use the software, the existing maintainer was nowhere to be found, and they had missed several version bumps. Also went through and made several changes based on a) what I’ve observed on other PRs, and b) whatever ofborg complained about (I used the anonymised GH email in my maintainer block, which I then removed to pass CI). Everything in the PR was also compliant with the contributing guidelines, and I went the extra step of doing testing that many other PRs do not do. I’ve packaged elsewhere since over 11 years ago, so I understand most of the time even nitpicky-sounding guidelines are there for a good technical reason.

No response for a few weeks, which is not something I’m too frustrated about, as I know the PR-to-committer ratio is far too high (and sustainabillity of nixpkgs is a whole discussion unto itself), other than it feels a bit weird waiting for an uncertain amount of time. (Even an estimate of backlog would be more reassuring, although I get why this can be difficult especially if a PR comes through that forces treewide changes.)

Got a couple drive-by approvals. When it came time for someone with committer access to approve, they had no problem with the technical details; however, they instead responded with something along the lines of “I won’t block this PR, but please let me know if you can provide some contact info - I will wait until your response before merging”. To me, since this is not a requirement in the contribution guidelines, it is therefore my prerogative to (not) provide contact info. It’s also quite obvious that I’m not following the format of every other maintainer block, surely there is a reason for this. So I strongly dislike that a committer took it into their own hands to enforce their own standard that is not required anywhere. And they also claimed that they would “not block the PR” but effectively proceeded to do exactly this.

Anyway in this case, I am in between email providers, and I have no interest in participating in matrix, but I am happy to make myself available on PRs if tagged. I responded as soon as possible with this info; I got no response afterwards.

This goes into my other frustration: if I submit a PR to nixpkgs, I have no assurance that what I send will get approved even if it follows all the formal and informal guidelines, since every reviewer will come up with their own pointless requests. If something is a standard, it should be written down. Staring down the barrel of years of bikeshedding over future minor changes, I instead opted to close the PR (after a few more days of waiting) rather than wait around X more weeks for another committer to complain something more on a 4 LOC change that I already spent several hours on. This wastes my time and the time of the committers to do this back-and-forth over nothing.

Most recent thing that soured me a bit was getting a weirdly passive-aggressive response from a longtime contributor to my first comment on Discourse, after which I tried to make a good faith reply but got ignored entirely. I don’t want to call this a “cultural” issue as I don’t follow Discourse much, but I don’t feel great about participating further in the Official Nix Ecosystem based on the timing of it (soon after the PR issue).

I’m not entirely hopeful about even this thread improving things, but I thought I might as well mention something from a POV that I don’t see shown above.

17 Likes