Dropping upstream Nix from Determinate Nix Installer

Do you object to companies like Cachix, Hercules CI, and Nixbuild advertising releases here on Discourse? Do you object to users of those platforms seeking help here? How about forks like Lix and Snix?

4 Likes

None of those tools take up as much air in this forum as Determinate Nix.

Lix has it’s own community, even if there is overlap.

There is also not a lot of beef between the nix community and any of those projects, at least not that I’d have noticed.

6 Likes

Cachix, Hercules CI, and Nixbuild are offering new / ‘orthogonal’ products and services. They are not trying to pass off a fork of core tooling as a ‘distribution.’

Snix is a rewrite in a more modern language which I think the community regards as generally desirable, rather than a fork per se. Lix clearly is a fork, and admits such, but really there’s remarkably little “advertising” for it on here that I’ve seen. It’s also not yet adding major incompatible changes or features.

17 Likes

We think it’s good to keep people apprised of what we’re up to and it’s hard for me to think of a rule or generally agreed-upon norm that we’re violating by doing so. If the community moderators disagreed and would like for us to refrain, we’d abide by that. But we’ve received no such missive. And the fact that our posts often generate a lot of “air” strikes me as a solid indicator that we should continue.

3 Likes

Is this statement independent of your employment by Determinate Systems? e.g. were you using it beforehand?

5 Likes

I was using it before I started working at Determinate Systems.

1 Like

They’re a 9 person company, up from presumably a few people. So, it would appear that things are in fact turning out well.

They clearly agree, as seen by opening PRs. If the Nix maintainers decide to gatekeep (for reasons good or ill), that’s not DetSys problem. Open-source collaboration is not a suicide pact.


I’ve said this before and I’ll say it again: the Nix community has been outright hostile to DetSys, and those folks have taken it on the nose like champs this whole time.

Everybody complains about the DetSys determinate-nixd–well, go write it! It’s not that hard! If it is that hard, maybe there’s a reason there’s money to be made there!

The sad truth of the matter is that DetSys is able to crank out more stuff and talk about it better than upstream Nix. Some of this is because it’s their day job, sure, but a lot of that is due to decisions made by the Nix community and Nix upstream around how those folks want to manage their resources and gatekeep their code. It is nonsensical to complain about “waaaaah they have all these features they won’t share” and then also “waaaaah we don’t like the way you built this feature we’re gonna sandbag for months to make it exactly like how we like it”.

It’s entirely possible that the sandbagging is uninentional. It is entirely possible that the features need real changes, but that the people who can make the changes are already at DetSys or that the process for making changes is too complicated.

If that’s the case, the strategic thing that needs to happen is to streamline the process and figure out how to onboard new developers–and to be blunt, about the latter, y’all are as toxic as a quarry tailings pit and anybody skilled enough to do that sort of work would probably have a better time elsewhere. This is the course the community has chosen in their behavior.

Maybe focus should be placed on fixing those things instead of impotent whining every time DetSys actually like, you know, does something.

16 Likes

They’re not even making money off of it. Why does it need to be proprietary?

1 Like

Classical reason for that could be to prevent people from relying on non-public behavior that they’d then have to support. There’s a lot of that hackery in various nix tooling. Another reason is to keep from having to wrangle PRs or issues.

@crertel The Nix team isn’t gate keeping anything except to make sure requirements (like - ironically - determinism) are met.

I don’t care about speculating, and I’d suggest we all go do something useful.

58 Likes

Yes what @xokdvium says is true. I would encourage people to read Worse is better - Wikipedia; We have an “MIT Nix” and a “NJ Nix” from the perspective of that essay. I am personally firmly in the “MIT camp” here — IMO the whole essence of Nix is that being correct where other every other tool is sloppy really does pay out in the long term — but I will admit what is actually better is a matter of opinion.

To the extent things things don’t get upstreamed, it is due to this difference in approach and prioritization. As @roberth says, they don’t mind a little “harmless” (from their vantage point) nondeterminism. And they don’t want to spend more money to fix that just to get it upstream. It wouldn’t be me making those calls, but that’s their prerogative!

I would certainly rather have Detsys make a fork, than have the Nix team bicker endlessly about what goes in nixos/nix/master. Likewise, if we had had “Tweag Nix” back in the day when Flakes was first made, and only that had Flakes, IMO that would have solved a lot of problems and avoided a lot of drama. It’s a useful escape valve so both schools of project management can be pursued faithfully.

28 Likes

Other than that I disagree on one particular–NJ Nix is more attractive to me for various reasons–I want to say that I think you’ve nailed a good framework for thinking about all of this, and especially agree on the points about forking.

4 Likes

Both @Ericson2314 and @roberth indeed frame this really well. We lean more “Aristotelian” (practical) and less “Platonic” (theoretical) in our approach because, well, we have to! We have flesh-and-blood organizations as customers who are blocked from using Nix by things like performance bottlenecks. We’re unblocking them on our own schedule and collecting lots of data and we’re confident that the benefits of our work will find their way into upstream Nix in due time. But some friction is inevitable. None of us at DetSys think that the upstream NixOS/nix project is engaging in any gatekeeping or stonewalling or bad faith whatsoever.

I, for one, think this is all quite healthy and normal and I wish that people wouldn’t pathologize it and read so much ill intent into these discrepancies.

25 Likes

I don’t mind that Determinate Systems has their own fork, but what I cannot understand, is why you are allowed to sell it as Nix? It would be bad enough if you consistently write “Determinate Nix”, but most of the time you use Nix and “Determinate Nix” interchangeably. Someone that comes across the Nix Installer, would not know any better. I do not understand why that is not a blatant trademark violation.

Lix and Snix both have their own names, why are you allowed to call yours Nix? Since we have Lix, I vote for Dix and think you should rename the installer to: Dix Installer

21 Likes

Is the experimental installer forked from Determinate Nix Installer currently supported and recommended by the upstream Nix team? Or is the vanilla installer the recommended approach for now?

1 Like

If someone is good with GitHub actions and wants to help with GitHub - NixOS/experimental-nix-installer: An experimental fork of the Determinate Nix Installer to explore upstreaming. hit me up on on matrix in the nix developer channel. It’s mainly integration work and testing left to do to make it offical.

41 Likes

The foundation hasn’t enforced their trademark since the last time this was discussed on Discourse.

6 Likes

I’m actually quite happy to see Graham’s and Luc’s evolved approach in this post: “we’re a team of our own, working on our own product, with our own limited resources” is a healthy and welcome attitude, inspiring cooperation. The whole “downstream distribution” and “upstreaming lazy trees” are basically a meme at this point, but with DetNix being its own thing it makes perfect sense that it serves different use-cases, which are accommodated by DetNix’s features, and for which NixOS/nix’s concerns and requirements are less relevant. Perhaps, having drawn clearer lines and given each other space, it’ll be easier to talk about sharing and interoperability again

20 Likes

They will hide this reply but All of this just to take a little bit of money from some of the worst people on the planet, funding which consistently generates outrage

4 Likes