I’d say it’s worth noting that this was merged to our internal repo four days ago (and two of the days inbetween fell on a weekend). Perhaps DetSys could be afforded a bit of a grace period before concluding that there are “no signs” even of an intention to upstream this?
I think the point for me isn’t that it wasn’t merged yet, or a PR wasn’t opened yet. But that you developed the changes in your own fork without community involvement and will at some point throw them “over the wall”. That’s not nice. You have a right to weekends, but this PR should have been targeted to cppnix from the start instead.
It seems like that type of good will has evaporated.
I think people would care a lot less if you called it a fork. Developing features by yourself in your own tree with no collaboration before the work is finished is fine, in a fork. It’s less ok if you are going to make a song and dance about how it isn’t a fork. I speak for myself here: I am generally fine with most everything detsys does, what bothers me so is the gap between what you are saying and what you are doing.
Yeah, not really much point in engaging further. If we announced a fork, that would be bad. If we quickly got this merged in upstream that would be an abuse of influence. If we spent some time on getting input from users prior to demanding the time and attention of the Nix team for a review, that would also violate some unspoken norm and constitute some obscure form of abuse. It’s tiring and I’m completely over it.
I think there was PLENTY of grace and patient afforded to DetSys in the past and even in this thread.
Exactly. It is just plain bullying. I am disappointed at the mods for not taking a stronger stance against the bullying, and not clearing up misinformation.
The mods are perpetuating the problem. The last time I tried to participate in the same fashion as I’ve seen others of the silent majority interact with posts on this forum, hexa banned me for 2 weeks. As long as the same crew is in charge, nothing will change.
This description misses a critical detail of this “somebody” holding a position of power in the Nix project.
The problem here is DetSys using this position of power to maintain a for-profit fork. If they didn’t hold these positions, there wouldn’t be a problem. If they didn’t fork Nix, there wouldn’t be a problem. Having a fork developed by the Nix Team lead presents a conflict of interest.
Consider this question: what happens if upstream Nix merges some changes in a way that’s fundamentally incompatible with changes in DetNix? I see a few options here:
- DetNix and upstream Nix forever diverge, at some point breaking nixpkgs for DetNix users;
- DetNix conforms to upstream Nix, breaking existing code for their clients; or
- DetSys wields its power to prevent this from happening, regardless of the opinion of the Nix community.
I’m not even saying that [3] will necessarily happen, but DetSys will have both a strong incentive and power to choose [3]. They try to avoid talking about this problem by avoiding the word “fork”, but this doesn’t change the reality that DetNix has some features that upstream Nix doesn’t, and that if upstream Nix ever accepts these features in a different form, there is going to be a problem.
DetSys lost a lot of goodwill by refusing to honestly engage with these questions. I’m not advocating being mean to them, as this doesn’t achieve anything, but I think it’s pretty natural that a lot of people in the community are skeptical about them announcing new DetNix features while the problem described above wasn’t adequately addressed.
The mods have been allowing the discussion to proceed with minimal intervention, because as we have stated several times there are important issues to be fleshed out here, and it has generally been fairly constructive. That includes allowing criticisms, and only responding to the more heated and personal escalations that do not add to the argument.
A while back, I made the point that those criticisms, the reasons why people feel the way they do about detsys posts, why the good will has seemingly evaporated, had been well covered by that point.
There was a long and excellent list of summary points and action items. That seems to have been largely ignored since.
It seems like the discussion may well have run out of useful places to go. Prove me wrong?
I mean, yes, it would probably be badly received if you announced that you (DetSys, employer of one of the lead Nix developers) are shipping to your users a forked version of Nix with features developed with no involvement of other Nix developers. It would probably be significantly more honest considering your employer’s behavior, but I can’t disagree that it would be badly received, this thread is sufficient evidence of it.
Yes, of course. In fact I don’t think anyone suggested you should do that! I’m happy we’re in agreement on this, I feel like this doesn’t happen too often.
Now you’re just making problems up, or more precisely since you can’t even imagine how there would be a problem you’re making up a nebulous “existence of problems”.
I don’t think it’s controversial to say that if this feature was developed as “an issue is opened on the upstream tracker attempting to collect feedback on JSON logging in Nix, and DetSys documented their proposed use case there, other parties could contribute to the design if they wanted to, and then a pull request was opened on the main Nix repo” nobody would be calling this “DetSys is developing and releasing features in their fork first”. Am I crazy for thinking that this is how things should work in an “upstream first” relationship like has been so often claimed by DetSys?
In fact this approach is pretty much exactly what you yourself announced in the 3.0 release article this thread is originally about!
while we maintain compatibility with the broader Nix ecosystem and actively contribute our improvements to upstream Nix, where the community ultimately determines their inclusion
Doesn’t sound like the community ultimately determined much here.
I think bme said it best: I don’t think anyone really has a problem with DetSys maintaining a fork of Nix, you’re fully allowed to do so after all. But that’s incompatible with also making claims that you’re working upstream first and that you’re just “a downstream distribution of Nix”. And that’s important because there’s really no discussion that can be had about the governance issues (for example: a Nix project lead being also involved in leading development on a competing fork of the project) when even basic facts about the truth of DetSys’s upstream work model are misrepresented. Or maybe it’s not a misrepresentation and you just fail at upholding the standards you’re aiming for - in which case a respectful answer would probably be to say “yes, this should have been developed upstream first and we didn’t [for various reasons], we try to avoid this”.
It also, to me personally, feels very cowardly to see your company try so hard to convince the community that their fork isn’t one, while you at the same time just last week were spending your time criticizing other forks on other forum threads and claiming that using a fork on part of the build infra made NixOS’s infrastructure less trustworthy. You’re placing yourself as above the others when you’re really doing just the same. But hey, that’s my personal feelings here and maybe I’m misinterpreting your stated view on forks.
Finally, re:
Fair, but you somehow still had time to release these changes to the public in the meantime, which seems to indicate it’s not a lack of work time but definitely a lack of prioritization that’s involved here. I feel like I agree with you that within such a short period no-one can’t conclude you have no plans to upstream things, however I think it’s extremely obvious that this is not an upstream first model.
Thank you for spelling out the exact specific way that you personally think that we’re allowed to interact with upstream Nix. I’m sure that the rest of the folks on Discord all agree on that very same prescribed methodology. Henceforth, we’ll follow it to a “T” and I’m sure our future contributions will be spared from withering criticism.
This topic has gone on for long enough. This has become a magnet for airing grievances, bullying, public rhetoric, and posturing. This has not been a healthy discourse for quite a bit.
Mods, please close. Just because something contains criticism doesn’t mean it is productive. Community-wide policy proposals should go to the SC; it exists precisely to avoid a “most loudest+prolific voice wins” situation where everyone feels the need to respond to everything and escalate. Letting this go on this far has been a disservice and a distraction.
Is there an established procedure to escalate this to SC (ask SC to consider this problem)? This summary post may serve as a list of perceived issues and proposed solutions: Determinate Nix 3.0 - #224 by rhendric
At least one member of the current Steering Committee, @roberth, has posted in this thread, so they are probably aware of it. Otherwise, Nix Steering Committee kickoff lists steering@nixos.org as an email address to reach out to them collectively.