Back during the governance bootstrapping discussions, we had a thing going where long discussions would periodically get recaps written up and posted so that newcomers wouldn’t need to scroll through quite so much (and also so the rest of us could get a better picture of what had been covered already). I liked this, and have been keeping notes on the various threads at play here, so here is my attempt at a mid-level summary of the last 220 posts, ‘the good parts’.
If you believe you’ve been quoted out of context or otherwise inaccurately unfairly represented, please DM me and I will be happy to edit this record to reflect your true intent. Similarly if you think my POV has caused me to omit an important and on-topic part of the discussion, or if I just plain made a mistake (been doing a lot of quick copy-pasting these last few days!).
DetSys statements
- The initial post [1]
- ‘we will be making [lazy trees and parallel eval] available to users in the very near future’ [7]
Complaints about DetSys
Accusations that Eelco is intentionally holding back upstream Nix: [5, 8, 17, 35, 56]
- @jade: ‘it looks bad for the [Nix] project lead to be employed [selling packaging] while the default packaging is as poor as it is.’ [16]
- @piegames: ‘[Eelco on the Nix team] is an intolerable conflict of interest to me.’ [27]
- @KFearsoff: ‘You [implied: Eelco] could take responsibility […] and actually take it [flakes] to completion without dismissing valid issues as “not a bug”.’ [86]
- @TLATER: ‘It’s hard to look at this and not feel like detsys’ business model is shooting nix in the foot and selling you solutions to problems they are causing’ [173]
- Dissenting posts:
- @uep: ‘a commercial distribution with paid support can potentially try out some of those features sooner, precisely because there is paid support to deal with all the late loose ends that are required for stabilisation.’ [18]
- @rhendric: ‘The natural response to [feeling out of control of which features get merged] is an independent fork’ [41]
- @rhendric: ‘Would you leave those PRs open in the upstream project, and continue to push to them as recently as three days ago [if you wanted to suppress them]?’ [66]
- @ppenguin: ‘So supposing that DetSys would “just want to get things done” first of all, and worry about everything else later, I can understand how things are like they are.’ [117]
- @grahamc: ‘Eelco has been ready for flakes to be stable for years. He’s been internally advocating for us to release Determinate Nix 3 with the experimental flag removed for a long time now.’ [118]
Concerns that, intentional or not, the effect will be that upstream Nix gets less development if DS fills gaps with their solutions
- @doronbehar: ‘However, with Nix and with DS, it is not clear exactly what is the business model and how is this aligned with the community model.’ (And several more useful questions in this vein.) [23]
- @TLATER: ‘In other words, detsys have successfully subverted community efforts by offering something that they are uniquely placed to sell, and thereby halted natural sprouting of grassroots efforts’ [173]
- @delroth: ‘the net effect is that this might have reduced interest in developing an open source alternative as it would just be “a second open source system doing the same thing” when Flakehub eventually became open source.’ [179]
Claims that this is a de facto ‘open core’, and that’s bad: [8, 109, 185, 188]
- @nyanbinary: ‘DetSys brands their fork “stable/enterprise,” creating a two-tiered system with commercial incentives.’ [56]
- Dissenting posts:
- @crertel: ‘time-honored way of helping industry adoption’ [10]
- @max: ‘what Determinate Systems is doing here is effectively acquiring financial means to develop Nix further […] my favorite way of monetizing FOSS development’ [46]
- @rhendric: ‘the fact that Nix and DNix are not controlled by the same entity is an important difference here’ [66]
Claims that DetSys is doing an EEE: [47, 54, 55, 56, 171]
Brand confusion between Nix and Determinate Nix
- @kranzes: ‘we got det nix 3 before nix 3’ [entirety of post] [24]
- @nyanbinary: ‘I have seen people confused thinking this was Nix 3.0 when it’s not.’ [35]
- @rhendric: ‘The branding “Determinate Nix 3.0” in particular is very likely to cause confusion among people who might think that it is in fact the next version of Nix.’ [45]
- @samueldr: ‘Determinate Systems, even though it might not be the intent, are now using the lack of trademark surrounding Nix to cause confusion’ [127]
- Dissenting posts:
- Relevant: Nix Foundation lacks a trademark policy [36]
Assertions that DetSys should use the word ‘fork’ to describe Determinate Nix: [2, 27, 35, 67, 113]
- @KFearsoff: ‘The only project I know where it is considered acceptable to develop patches and features out-of-tree and call your project a “distribution” (that would necessarily be “downstream”) is Kubernetes. k3s, k0s, minikube and others - call themselves “distributions”. I don’t know how that came to be, but it is an extremely abnormal practice.’ [121]
- Dissenting posts:
- @grahamc: ‘we won’t describe our downstream distribution as something it isn’t’ [114]
- @grahamc: ‘it is a downstream distribution. There are many examples of exactly this pattern: distributing a patched version of an upstream project and call it “CompanyName Project” […] One prime example of this is Linux itself!’ [133]
The Nix team is blindsided by Eelco’s lack of transparency: [31, 40]
Disputing the honesty of DetSys
- @ElvishJerricco: ‘So creating features in your distribution that are not acceptable upstream is disingenuous.’ [11]
- @cafkafk: ‘they unironically gaslight you’ [25]
- @samueldr: ‘you had spent a long time ghosting me. […] So I’ll continue having my doubts about the veracity of your communications.’ [125]
- @TLATER: ‘the sometimes self-contradicting messaging around all this makes it hard to trust anything they are saying’ [173]
- Dissenting posts:
Complaints that DetSys software is not open source enough: [158, 166, 167]
What to do about flakes?
- @SergeK: ‘call it a “make one to throw away” project […] I think should start phasing Flakes out’ [71]
- @polygon, @dschrempf: ‘No.’ [72, 73]
- @RaitoBezarius: ‘It [a phase out] doesn’t mean breaking Flakes for end users in the process.’ [75]
- @waffle8946: ‘I (and others) more or less had the same complaints about flakes 2 years ago, and it seems we are no closer to actually solving them.’ [80]
- @KFearsoff: ‘Flake code can’t even be called a “mess” - it is of very low quality, absurdly tightly coupled and prone to breakage on sight.’ [86]
- @RaitoBezarius: ‘This [issues with the design of flakes] is why we are calling on NOT steamrolling [flakes] even though it WAS steamrolled in the past. We all want some form of hermeticity of evaluation and dependency management, but as I said: this requires HARD work.’ [98]
- @grahamc: ‘I literally do not care at this point if the decision is flakes or not flakes. My users do care, though, so I am delivering what they are begging for.’ [129]
Steering Committee response
Calls for action
For others
- DetSys to voluntarily rename Determinate Nix [45, 71, 109, 119, 130, 136]
- DetSys to add an SC/Foundation board observer [157]
For us, restrictive
- Eelco to leave the Nix team [27, 32, 123]
- Nix Foundation to get a trademark policy [36, 41, 71, 109]
- Ban DetSys from NixOS community spaces [121]
- ‘meaningful, restrictive solutions’ [183]
For us, constructive
- Upstream Determinate Nix features to Nix [28, 29, 49, 53]
- Help out with Nix [70, 106]
- Fund development of community-oriented implementations of the problems DetSys is solving in a business-oriented way [175, 178]
- Mentor more Nix contributors [175]
- Make Nix merges less regulated [204]
- Give Nix accessible extension points [210]