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?
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.
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.
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.
Is this statement independent of your employment by Determinate Systems? e.g. were you using it beforehand?
I was using it before I started working at Determinate Systems.
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.
Theyâre not even making money off of it. Why does it need to be proprietary?
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.
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.
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.
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.
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
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?
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.
The foundation hasnât enforced their trademark since the last time this was discussed on Discourse.
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
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