Home page Blog

Trying to understand the NixOS controversy, from someone uninvolved

Hello

Since a while ago, I saw some discourse regarding NixOS. I didn’t cared much at the time, being busy with other things. Some discussion about a CoC, (pretty common across the various project I participate in). Something about sponsorship of NixCon by a private commercial body related to the defense industry (an euphemism for government policy or (infra)structure related to the military. As in, sold to the governement, in this context). The kind of things that happen in those kind of community.

Ultimatly, some posting on Reddit got me a bit worried. So I decided to do some research, hoping I could at least understand and explain that situation, seeing the lack of neutral article that could reinsure me.

I hope this article will fill that void, and thought I don’t claim myself to be absolutly neutral, I did the best I could to this, leaving my opinion to this intro, conclusion and eventual text both in italic AND (as in, an “and” logical condition) between parenthesis.

If you notice any issue, feel free to send me a mail to marius@mariusdavid.fr. I didn’t performed any proofreading by anyone else than myself, and I tried to be as accurate as possible without delving too much into the details.

Also, I recommend following the principle (which I got the name of via Wikipedia) of “assuming good faith” from the other participants (until proven otherwise). It is important to remember all parties involved are Nix(/pkgs/OS) contributors, and that they probably hope the best for the project.

What is this all about

This is about two different contradictory ideology of how the project should evolve. The current conclusion (as of the 6 of july 2024) is that there is a new Nix Constitutional Assembly, seemingly made mostly (if not entirelly) of people from side 1 (arbitrary naming)

The problem

There has been some critism of how few people held too much power in regard to the Nix project, and in particular Nix (the interpreter). Those disactifation entually resulted in an open letter (with a some more detail to help explain a few unclear point here). This eventually lead to the Zulip chat, discussed below.

The NixOS Stitching Foundation board

The goal and definition of the board is defined in the bylaws of the NixOS Stitching Foundation, incorporated in the Netherlands. Most importantly, it states that “The purpose of the foundation is: to develop, propagate, and promote the adoption of a purely functional software deployment model and to support open-source projects that implement that model, as well as other activities that relate to, pertain to, and/or can be conducive to the foregoing in the broadest sense.”, “The board manages the foundation, sets the policy, and bears ultimate responsibility for the realization of the foundation’s purpose.” and that “The foundation’s board comprises a number of members to be set by the board itself” (up to 7 and no less than 3).

They play a role here, as they are the ones who had the ultimate responsibility for making the Nix Constitutional Assembly, and they are those who appointed them.

More details can be found on the relevant GitHub.

The Nix Constitutional Assembly (NCA)

They were appointed by the board following candidacy that happened in may 2024, following debates that happened on a purpose-made Zulip chat. Some people critisized it for being useless, althought it’s hard to tell how much of that is true (I tend to think that any discussion is not totally uselss, althought there are certainly better way and subject to discuss than others).

Eventually the board elected that Nix Constitutional Assembly, whose members and mission can be found in the relevant GitHub

Here is a copy of said missions

The NCA's basic mission as given by the board is to set up a governance structure, run by the community, that is capable of serving the community’s needs. The following baselines have been given:

  1. The resulting governance structure needs to accommodate all official Nix resources including code, policies, websites, accounts, infrastructure, trademarks, finances, etc.
  2. While the NCA is free to choose any form or structure that they think is best for the project, they must ensure that the resulting governance structure’s decisions are representative of the entire community. This also requires defining what the community is.
  3. The resulting governance structure should be expected to provide stability to the community for the next 5 years.

As indicated by the board, once the new governance structure is approved by the board, the NCA enters a transitory period to support the execution of the structure before finally disbanding.

To give us a reasonable timeline and set expectations for the wider community, we are targeting our work to be done by 2024-09-01.

The repo also contain a list of report on their work.

The controversy itself

There were controversy (and divergent opinion), as expected, during the may Zulip chats. I haven’t explored all the details. But ultimatly, from what I can gather, it seems that most of the remaining controversy come from the conflict between those two sides:

Side 1

They want (relatively) rapid changes in the leadership, in the hope to help peoples who fell discouraged to participate in Nix, due to them facing too much harsh and repetitive critisism toward their work and contributions.

Side 2

They want to avoid brutal changes. They do not believe that there is much of a problem of persons being discouraged from contribution, and that critisim is a normal part of software development, to help reach the best result.

What remains of it

I didn’t spent the time needed to have a detailed overview of those discussion of may, so I won’t speak about them, or what happened beforehand. I will however jump to what seems as of today the main point of contention.

And it is regarding moderation. Some members had a temporary ban in those discussion, for sealioning (a term new to me. The english Wiktionnary says “A type of trolling or harassment that consists of pursuing people with relentless requests for evidence, often tangential or previously addressed, while maintaining a pretense of civility and sincerity ("I'm just trying to have a debate"), and feigning ignorance of the subject matter, in order to wear down an opponent and incite angry responses that will discredit them.”“). Naturally, the people targeted, seemingly mostly from side 2, didn’t like that much. Things went badly in the opinion of side 2 later when a certain person (jonringer) was permanently banned following his participation after his temporary ban for sealioning. The NCA had made a piece explaining their justification (I haven’t spent much time checking if it exaggerated or not, but at least contain some seemingly valid argument regarding his conduct).

There is also the fact that discussion regarding this controversy seems to be badly tolerated on the Discourse. I haven’t spent much time seeing how justified or not they are, thought it’s true some seemed to derail a bit of the nice discussion they should contain.

There also seems to have some internal division regarding jonringer, with a member having expressed (in, this is true, a somewhat unclear shape) their interest in spending time with jonringer to better understand each other, (with jonringer admitting some error) with another one expressing their strong critism of it.

Conclusion

It seems most of the controversy is gone now. What little remaing seems to be concentrated on certain moderation decision, and especially the ban of jonringer.

I just hope a positive issue will be taken. At worst, jonringer will stay banned, and this will tone down eventually. At best, jonringer will come in better term with NCA, and will be unbanned (possibly after a review of their own argumentative method). Otherwise, let’s not forget the NCA is only meant to be a temporary body, so what comes next may have different view on that subject, in addition to time having passed.

But I don’t think this is something that will endanger the Nix project too much. After all, that project is meant to provide better project administration. And I believe that people who just contributes code to NixPkgs and don’t want to get involved don’t need to.

Althought I would like to add that some person have announced their distanciation to the Nix project for reason related to this, among them Xe (Thank you for you interesting blog post. I’ll continue to consult them.). A few people has also announced their leave of the project, but seems to have come back once the NCA has been established.

Lastly, if you do have worries, and want to share it with the NCA, you can do so in the way described in their GitHub repo. They seems to be open to discussion. (but from what I see, it’s probably better to not be too pushy).

Additional reading

I have linked most relevant content with inline link, but a few document that have influenced this one, and in particular my definition of both side, are those: