Current and future state of Nix?

What’s the status of DetSys “situation”?

  1. Do we now have two competing Nix implementations? @grahamc, any plans on merging your changes into NixOS/nix?
  2. Does DetSys even acknowledge the fragmentation they introduce?
  3. Do you understand that this will harm both the foundation and the company?
  4. Do you plan to work together with the community on this one? How?

Right now this whole situation feels like

We at Determinate Systems have money, vision and a Nix founder (you know, literally The Guy). And you do you, FOSS folks. Thx for the free work btw!

This is an impression I’m getting from reading all of the threads surrounding the DetSys’s announcement of v3.0.

Do you not want to spend much time bike shedding on community RFCs when you can already implement these things and offer to the clients? Look, I get it. I really do. But then why give your community so much power in the first place?! You have @edolstra out of all people. I know he stepped down and stopped being BDFL, but maybe he shouldn’t have done that?

If you want something useful to come out of the project, it better have someone who would steer the project in the right direction. It doesn’t mean the project should stop being open-source. Linus Torvalds has a lot of power over Linux and it didn’t prevent it from being good.

And now that Eelco stepped down and no longer has any executive power you have to fork things because there is no other way to enforce your vision.

wiki.nixos.org vs nixos.wiki

It’s been god-knows-how-long. Are we ever merging them? What’s taking so long? It’s clearly not that hard to setup a redirect. Are we once again struggling to coordinate our efforts? :')

nixos.org vs nix.dev

What’s up with these two? Who owns the nix.dev domain? I’ve had a feeling they are both official. Why have both then?

Flake stability

Some people were really mad at DetSys for introducing flake versioning so early. They said that flakes will need breaking changes in the future. Especially flake inputs.

What are these changes? What is holding us from declaring flakes stable?

Summary

Is this ever gonna end? What is this madness? I feel like the whole Nix project stagnates because of this fragmentation and uncertainty.

I love Nix and I only wish for it to succeed and get the recognition it deserves. But it gets harder and harder to keep the passion burning with things like these :‍(

P.S. I’m sorry if anyone finds my post harsh or rude. I did not mean to offend anyone.

8 Likes

It’s not simple, but I wouldn’t panic. I think the problem is simply that in such a large community that we have today, you can’t expect everyone agreeing on a single concrete vision anymore, so there will be side projects, forks, etc. Speaking of Nix forks, there’s also Lix.

And nix.dev should be a part of the official project now, sourced in github.com/NixOS/nix.dev even though it started unofficially.

I believe that DetSys repeatedly claims they do want the changes merged, and I believe there are open pull requests for many of them at least.

10 Likes

No. We have an ownership problem, and it’s unlikely to ever be resolved (or at least until the old wiki lets the domain registration lapse).

EDIT: I also forgot there is even an FAQ about this on the wiki itself.

8 Likes

We aren’t small, sure. And there is always room for disagreement. But split between NixOS Foundation and a corporation that has a Nix founder as an employee — is not something that can be ignored as easily as Lix.

Will it continue to coexist with nixos.org though? There are many reasons why this would be bad for the ecosystem (SEO, confused newcomers, split documentation efforts and much more).

2 Likes

Is nixos.wiki purposefully not giving up the ownership of the domain? I thought they were cool with the migration? Who owns that domain?

1 Like

I’m honestly not sure how productive such threads are, but I want to mention some points:

It was tried extensively, see clarify NixOS Wiki administration · Issue #279 · NixOS/nix.dev · GitHub (and its own links) for context.

Now that we have an elected SC, there is no need to use the RFC process for substantial changes anymore. The SC can also delegate important decisions to individuals and teams.

Notably the NixOS Foundation and its board members (I’m one of them) are not authorative over technical decisions, as specified in the constitution.

Both are indeed official, see org/doc/resources.md at bd3ca5a88af0745645ce013b348ef4d9f4ca7410 · NixOS/org · GitHub (the entire repo defines what is official).

There is generally fairly strong consensus to unify the domains, see Move to docs.nixos.org · Issue #869 · NixOS/nix.dev · GitHub. I just think nobody’s gotten around to making a concrete plan that could be approved (I don’t have the time for it at least). I’d be happy for somebody to pick this up!

17 Likes

DetSys has shipped dozens of UX improvements, including lazy trees in feature preview, with many more to come. We’re appreciating and enjoying our ability to ship improvements and bug fixes quickly, and on our schedule.

We’re also very happy to say that essentially all of the improvements we’ve made have been proposed or incorporated upstream, and that we’ll continue to do so. We’re glad to continue working closely with the Nix installer working group. We do this because Determinate Nix is a downstream distribution of Nix, and not a fork.

It isn’t our place (nor do I think we have the ability) to push the project in any given direction we alone think it should go. Yes, it used to be Eelco’s baby, but it hasn’t been that way for a very long time, partially because I encouraged him to let go of that power and embrace community governance.

Regarding the rest of your message: to me, it reads as inflammatory and I typically don’t reply to these as a matter of course. Obviously I’m making an exception here for some reason. But why would I engage? They’re no fun, never productive, and I read them as essentially saying my only option is to come back, hat and hand, and say something to the effect of: please, I’m so sorry, it was all a big mistake.

But I don’t believe this is a useful way to start, because while we have made mistakes that I regret, it isn’t a mistake: we’re shipping Determinate Nix because we need the ability to ship improvements on our own schedule and timeframe. We can’t wait for a general consensus (that I believe will, fundamentally, never come) on flakes being stable. This continues to be true on our deep commitment and incredible work on things like macOS support, MDM, compliance, lazy trees, and on and on.

26 Likes

We have 3 actually (lix)

2 Likes

Hypothetically, if there is a consensus (on anything, really; I don’t think flakes will go away at this point) and it conflicts with features you’ve already shipped and your users are using in production, what happens? Ideally we can all agree on what’s good to ship and what’s not and have other changes mostly additive, but what’s the backup plan? At what point does “Determinate Nix is a downstream distribution of Nix” become unmaintainable, and would this lead to a hard fork, a huge pain every time you merge upstream or return to the upstream feature set?

5 Likes

Don’t forget Snix and Tvix

2 Likes

I think that it can seem like the state of things is one of disunion and mistrust, and mostly it is. But it’s important to realize that while Determinate Systems and it’s employees were tightly integrated into the rest of the project, there were many long standing stalemates, and a lot of things were stagnating because of the lack of alternative.

Now that we have Nix, Lix, and Determinate Nix, we’re seeing a lot of new interesting features come out. For a long time nixos.wiki was essentially dead and outside of the project, but when nixlang.wiki (rest in peace) came along, it finally gave contributors the spark needed to make the official wiki.nixos.org, and that in turn seems to perhaps have sparked nixos.wiki contributions. The fact that flakes aren’t just in permanent limbo anymore is also so mind boggling to me, as someone that still remembers the time when flakes were the voldemort we weren’t even allowed to speak about in support channels or wikis.

Nix has had an enormous amount of growing pains these past years, but honestly it has truly improved the project, there is no value gained in forcing a bunch of people that fundamentally disagree on certain issues to come together to achieve anything, it’s much better to have multiple diverging, but driven projects, it’s a much stronger ecosystem because of it. We also now have an at times flawed, but mostly functional governance systems, which is much better than the time when Nix was just run by what was essentially a bunch of companies.

I think what we should focus on isn’t to unify all Nix projects under a single entity that could never contain all the different passionate contributors in our project. We should focus on working together in a way that is fair, and not seeking to undermine or harm other projects that have a different technical direction than our own.

The Nix community being fragmented isn’t a weakness, it’s a strength. And so far it has been the cure to the preceeding long period of stagnation. I for one am excited about the future of Nix and its ecosystem.

37 Likes

I’m dating myself here, but I remember when there was this whole to-do about egcs being a competing fork of gcc, and in the end, despite some drama, it ended up working out fairly well.

So I guess the lesson from history is, in the immortal words of Douglas Adams, Don’t Panic. :grin:

7 Likes