Lix: an independent variant of the Nix package manager

14 Likes

Note: I am not involved with lix in any capacity, just found it weird that this isn’t posted here yet.

3 Likes

They are egg-dancing around the Flakes issue (which they clearly seem to dislike in general but still need to support because it’s widely used) so much that even after studying their FAQ it’s still unclear to me if they already support Flakes or if it’s just planned.

1 Like

It’s forked from 2.18, so I’m pretty sure it works with flakes, which where introduced in 2.4. Haven’t heard anything about it being ripped out.

5 Likes

I think the FAQ makes it clear they do and will continue to support flakes when they say “we consider them to be part of our compatibility guarantee” and “we intend to provide a good experience to those using flakes.” It’s forked off a recent version of Nix, so it will currently work with Flakes

7 Likes

If they write “we intend to”, then I read “we may do so in the future, but don’t yet”. Together with the very vague “forked from the last truly stable version of CppNix” this could really mean anything. I stand by saying that the wording is sub-par. But at least here it’s clear for everyone now. So thanks everyone for clearing this up.

2 Likes

I’m seeing some work on Lix of a similar nature to things I wanted to do to Nix, and can’t help but be sad about it. There are contributors to Lix who never tried to contribute to Nix — I never knew these like-minded people were interested in such work. And I imagine in turn they didn’t know know that I was interested in doing such work with Nix, or fostering their involvement.

23 Likes

Lix has established a welcoming and inclusive development culture from the start. Of course this is going to attract new contributors. The borderline toxic development culture of Nix is no secret to those who observe, and many people who want their free time valued did not even try to interact with Nix because of this.

Yes this is immensely sad, because we could have had such a positive culture in Nix, without requiring a fork. But the people who wanted improvement were blocked off.

16 Likes

can you chill a bit on the inflammatory rhetoric?
you push and push.

its cool that people made Lix and are passionate about it, but thats no justification to shit on Nix, the people or the community.

the new assembly was just created, let them have time to set things up. there is no need to constantly add fuel to the flames, especially while things are happening.

11 Likes

I am not shitting on Nix, nor am I pushing for anything (anymore), I am trying to explain why some things are happening. I initially wrote “borderline toxic” in an attempt at choosing slightly less harsh words, but upon further reflection of what I’ve seen I came to the conclusion that a lot of things which have happened are indeed outright toxic and not calling them out as such would be disingenuous. (Feel free to disagree with that assessment, I won’t discuss it further)

Lix is a months old project in response to years old problems, and I fail to see what it has to do with any new governance attempts currently happening.

7 Likes

So many cherry-picks without commit-references… I’d love to analyze this commit dataset sometime.

Yes, there were years of problems. There was also, in my view, months of recent progress — still net-bad sure, but a lot better than before. I think with just a few more mere months of trying to fix things we could have gotten everyone that is involved with Lix involved with Nix with full perms/rights/privileges.

In at least one case, it felt like a “I am really frustrated already, already strongly leaning towards collaborating on a fork, and am just going to try to send over a few last-ditch PRs to confirm my priors”. This, to be fair, is totally in that person’s rights to do! But let’s not confuse that with optimistically/hopefully attempting in a less adversarial, communication-first PRs-second way to make things actually work out.

4 Likes

I’m in the use-case of someone who loves Nix and has re-oriented their whole computing lifestyle around it, but has not contributed anything to upstream (yet). I was always too intimidated to try. I guess that means I don’t have much of a say in [gesturing broadly] all this, but everything that’s happened recently has left me in a strange position where I feel more urgency than ever to give back (“I use Nix every day, and the community is in peril. I have to do something, I owe them that much”) but am also more demotivated than ever to help (“Am I backing the wrong horse in supporting Nix? Am I backing the wrong horse by supporting Lix?”) If I regret becoming reliant on Flakes like I have, will I come to regret relying on Nix as a whole? Even if the Constitutional Assembly returns with a “perfect” plan, I can’t really imagine anyone who has already jumped ship saying “Oh okay, all is forgiven” and coming back. And that includes a lot of the people that taught me about Nix in the first place.

It’s just such a sad situation to be witnessing and I regret not getting more involved in the community back when it could have made a difference. And I regret butting in to the earlier conversations where it didn’t concern me just to provide my unhelpful “take”. At the very least, I am confident that the core idea of purely-functional software management is too powerful to die at this point. So I’m sure that someday, Nix’s promise of making all of our lives easier will come true, even if it’s not Nix that delivers it.

But in the meantime, I’m just doomscrolling Discourse and Zulip hoping for some indicator of what the future will bring.

4 Likes

@camtauxe I think a lot more contributions / Nix and Lix competing for contributors in a positive sum way (more contributions than before) would be a very good outcome.

I hope there will be an un-fork down the road, and at that point we would be in a much better position than before retaining hopefully all of those contributors.

If this optimistic scenario happens, then it doesn’t matter which horse you back right now so much :slight_smile: Hope that takes the pressure off!

10 Likes

Hi. I’ve been involved in trying to address these problems for several years now, so I feel qualified to comment on this.

In short: no, we could not have done that. While things are improving in theory, this is happening at the tail end of years of existing community burnout, and we did not have sufficient runway to try and improve this incrementally, if that’s the result we wanted to achieve. If this gradual improvement had started years ago, then maybe. On this timeline, absolutely not - everyone involved would be burnt out and have permanently left all Nix-related communities by the time the environment became actually workable.

Toxic community culture has a very real, non-refundable cost for everyone involved in it, and that cost is higher the longer the community remains toxic. Gradual improvements might sound appealing if you do not personally experience too many consequences of the toxic culture, but to the people most affected by this, it just means additional months or years of unnecessary suffering. They apparently did not want to sign up for this, and I do not blame them. The responsibility is on the community to solve these problems, not on the people wanting to get involved.

On the current timeline of governance changes, I think getting these issues resolved is theoretically possible, but most likely not in a short enough timespan to achieve the goal of “getting all these people on board as Nix contributors”. That opportunity is gone. That is the cost of years of inaction, and it is one that we will simply have to accept, learn from, and do our best to prevent from reoccurring.

9 Likes

@joepie91

this is happening at the tail end of years of existing community burnout, and we did not have sufficient runway to try and improve this incrementally, if that’s the result we wanted to achieve.

That makes total sense. I get it.

While things are improving in theory,

That is the cost of years of inaction

However you are now insinuating not that nothing changed fast enough, but not that nothing changed at all. There was action, not inaction. This is not theoretical.

Gradual improvements might sound appealing if you do not personally experience too many consequences of the toxic culture, but to the people most affected by this, it just means additional months or years of unnecessary suffering.

I do not like the insinuation that perhaps I have not suffered.

Prior to the Nix Team existing, I did get in a huge number of commits, but as not-very-welcome contributor. This was not a pleasant process and done through sheer perseverance. Later, I was not invited to be part of the original Nix team, and woke up 2 hours before I would have normally would have, twice a week, to attend meetings anyways for months until I was formally invited. I put up with a lot of pain with the goal that others could follow in my footsteps less painfully.

To see everyone go fork anyways makes me sad because it feels like I did all that for nothing. Few wanted to go through the door I was trying to leave ajar for them. Few want to work with me on the store-layer cleanups I think are so important.

If I knew this was all going to end in a fork anyways, I could have made different decisions significantly better for my health and well-being, and just got involved once the fork happened.

I’m not asking anyone else to care about this. It is justified to think that I got sucked into some long-simmering sunk-cost reformist tarpit. But I would like to have my own emotions, suffering, and effort seen and recognized as well. Maybe it was too little, too late. Maybe it was foolish. But it does exist.

20 Likes

What do you mean un-fork? Deprecating Nix with Lix, vice versa, or something else entirely?

There was inaction for years, prior to the last few months of changes. I know this because I was directly involved in pushing for every bit of (community-level) change that did happen in the preceding years.

To be clear, I am not claiming that you have not suffered, and that is certainly suffering; my argument is one of degree.

For example, you were able to dedicate two hours twice a week to attending meetings that you were not welcome at. A lot of people were not able to do that; they did not have the time or energy levels to be able to afford that in the first place. There is a pretty significant difference between “needing to sink energy into this unnecessarily” and “not having energy to sink into this unnecessary task to begin with”.

What I’m trying to say here is: yes, your situation sucked, and it should not have been necessary. But imagine how much more this might have sucked for other people who did not even have the affordances that you had to cope with this, and who were just outright excluded from the process entirely, with no way to deal with that regardless of how much they wanted to try.

This does not invalidate your suffering, but it does mean that you cannot assume your suffering to be exactly representative of the experiences that others might have had, and it explains why they might have made different choices, such as never trying to get involved with Nix development in the first place. They are both suffering, they are both problems, manifesting in different ways that are both legitimate.

2 Likes

People talk about the io.js node.js situation. There are many ways such a reconciliation could happen.

3 Likes

@joepie91 My experience is very different, I totally recognize that. Obviously it is a privilege to be able to opt into pain. And the pain that one choose vs the pain which is forced upon one without choice is very different.

cannot assume your suffering to be exactly representative of the experiences that others might have had,

Obviously I do not. My entire point was that my pain was different. Not greater, not more, but different.

explains why they might have made different choices, such as never trying to get involved with Nix development in the first place.

Perhaps people knew how much I cared about more contributors getting involved without having to suffer in these ways, and decided it was still not enough.

Or perhaps I did not communicate this enough — erring on the side of the current team getting along well enough for us to feel safe involving more people — and my intent to be just one of many contributors doing “foundational clean-ups” was not known widely enough.

The former possibility doesn’t haunt me so much — I tried; they knew it; it wasn’t good enough. Oh well. The later brings me much more angst as an opportunity squandered.

But imagine how much more this might have sucked for other people who did not even have the affordances that you had to cope with this, and who were just outright excluded from the process entirely, with no way to deal with that regardless of how much they wanted to try.

Let’s talk about empathy without assigning magnitudes. Anyone decided that getting involved was too toxic is also protecting themselves by not getting involved.

A goal of mine in trying to make space for people that cared about foundations and refactoring vs just new features, would be to lesson the pain of getting involved until it was less than the pain of sitting on the sidelines, wistfully onlooking, with the sad knowledge there was no other realistic choice. If I never managed the reduce the former pain until the scales tipped between them, that is my failure and one I am very much aware of.

8 Likes