Report on NixOS Governance Discussions
From May 2 - May 8, 2024, I participated in the online NixOS governance discussions proposed and hosted by the current board of the Nix Foundation.
This what has happened during the discussions between those dates from my perspective. It was written on May 11. Things will have changed by the time you read it.
I am making this because:
I want people to know that the author of this blog post (another ex-contributor to the discussions) is not the only one who believes the process was corrupted.
I don't want my participation ever to be used as an argument for the legitimacy of the portions of Nix governance discussion process in which I participated. Its outcome might legitimate itself eventually, but while I was involved, the process wasn't legitimate.
The Nix Foundation board wasted five days of my time.
Those admissions aside, I hope the remainder of the governance discussions bear some fruit.
My Background
I’ve been contributing to open source projects since 1998. I am the creator of the Pyramid web application framework and the Supervisor UNIX process manager. I am a consultant, and I have begun to introduce customers to Nix.
I have been using Nix since 2022.
My contribution to Nix is mostly what you see on my YouTube channel. I've made about a hundred videos that I hope are useful to Nix users. I have roughly four hundred hours invested in creating things about Nix and NixOS.
I've also contributed a tiny amount of code to nixpkgs itself as well as to Nix-related projects.
Many others have contributed much more for much longer and lots of people have a lot more to lose than I do from a poor outcome of these discussions. By comparison, I am not a long-time, heavy Nix contributor or advocate.
It’s unfortunate that I have to mention my politics here, but it will become relevant.
I am an American living in the United States. I have in the recent past been a centrist Democrat. But my opinions have been trending rightward for some time now, and it’s not impossible that I will consider voting for Republican candidates locally in the future. I would call myself a libertarian these days, although not with a big “L”.
Don't Harass
I avoid mentioning the real names or handles of certain people that I criticize in this post. To the extent that they are identifiable by the descriptions I use, no one should attempt to contact them or mention them on social media.
If you're thinking of contacting me because you want to disparage trans people, or women, or ethnic minorities, or really anyone at all, please get in the sea.
If you care about Nix, and you've got skin in the game, you could go participate in the governance discussions. They're still ongoing. I wouldn’t recommend it.
I positively urge you to not do it if you just want to recreationally argue about things. That would be unhelpful and a further waste of the time of the people involved in this process that are operating in good faith (there are many).
How My Involvement Started
I always got the vibe that there were many technical disagreements and long-standing factions in the Nix community, and people held each other in low regard across certain boundaries. And I had seen some crazy stuff on the the NixOS Discourse, the community forum.
But from outside, occasionally looking in, there was no evidence of an irreconcilable values rift in the community until an open letter was published at that criticized Eelco Dolstra, the creator of Nix and the recent Foundation board President and BDFL.
Nominally, the purpose of the letter was to put Eelco on notice that his leadership was no longer considered legitimate by its authors and its now-over 150 signatories.
It contained accusations that Eelco was "holding undeclared conflicts of interest that pose serious risks to the Foundation and the Nix project as a whole." And "[t]he “sponsorship crisis” is not a sponsorship crisis, but in fact, a continuation of a years long leadership crisis and project-culture crisis."
Prior to the release of this letter, there were a set of controversies about a pair of NixOS conference sponsorship attempts by a company called Anduril, an American defense contractor. Potential Anduril sponsorship was unpopular with not a small percentage of contributors whom are anti-military.
The letter leads off with a mention of those controversies, or at least not-them:
The present sponsorship crisis is not about Anduril. It’s about the cultural problems in how the Nix project handles crises and responds to community concerns, and how these problems have remained the same for years due to failed attempts to change them.
There were arguments in there that Eelco had neglected his leadership responsibilities and that he had railroaded certain features into Nix that other people didn't necessarily want.
This letter also had implications that Eelco was not helping marginalized people.
I could not take the majority of this letter seriously. It seemed to me that some small group of people were seizing on the fact that sponsorships taken specifically from Anduril— a company with very outspoken right-leaning leadership — could easily be used as a wedge to drive the community apart for reasons unrelated to those mentioned in the letter.1
From the interactions I had, and the ones I saw in Discourse and on Matrix, it also didn't seem there was an epidemic of bigots in the Nix community. Certainly there's was no evidence that Nix was created by one. There are people of every possible stripe working on this stuff, and I can't imagine many would stay if Nix was making their life a living hellscape.
I’m sure there is some minority of people who experience very real issues related to feeling othered in the NixOS community but the letter uses very apocalyptic language with respect to marginalized groups. It says:
We believe that without action on Eelco fundamentally changing his relationship to the project, the entire Nix project is on the precipice of imminent collapse. It is likely to aggressively drive away contributors, especially contributors from all kinds of marginalized backgrounds, by continuing to be an unsafe environment which has not shown serious signs of improvement for years.
I doubted this claim entirely when I read it, and I still doubt most of it.
It seemed to me that this letter was a cynical vehicle written to remind people of wedge issues dusted with the intimation of reputational blackmail. I thought its authors insincere, and their goals not as honorable as they claimed and I believe that even moreso now.
As a result, I thought at the time that all the claims made in the letter had absolutely no merit at all. But since then, I've found at least one claim to have merit: for the project to move forward, Eelco needed to relinquish some control.
Eelco found himself in a place where he had de-facto control of something that became important to other people. I think it is now clear that, for the last few years at least, he was ignoring people, deferring difficult decisions, preventing groups of other people from making progress, and using his position as BDFL to impose changes that didn't have broad support.
Those are the totality of Eelco's offenses, as far as I can tell. He is a heads-down Dutch nerd programmer who doesn't have stellar people skills. This is the nugget of real truth buried in that letter.
But I felt the apocalyptic language about somehow second-order making marginalized people feel unwelcome was just added in there to kinda scare him into stepping down. Which it maybe did.
He appeared to try to resist at one point. He followed up the the open letter with a blog post. It contained the following:
Last, I must express my deep disappointment and disbelief at the accusation of excluding people from minority or marginalized backgrounds. As someone who highly values diversity and inclusion, this accusation is not only unfounded but also insulting. Throughout my career, I have consistently supported work towards creating a welcoming and inclusive environment for all individuals, regardless of their background. I continue to support initiatives to ensure that everyone feels valued and appreciated, and I have actively encouraged opportunities to amplify the voices of those who have been historically marginalized.
I believe him.
He stepped down a few days later. Maybe he tried to resist and failed, or maybe it was just timing, and he had planned to step down anyway, but the appearance was that the open letter had worked.
In a post to Discourse made a few days later by another board member, the abdication was announced by the Nix Foundation board.
We confirm that Eelco showed no intention to be perceived as or act like the BDFL of the Nix ecosystem, or the Nix code base. To commit to that in a timely manner, he has decided to formally step down from the board.
A number of posts in the Nix Discourse subsequently appeared about the expulsion of another long time Nix contributor named Jon Ringer for “repeatedly derailing sensitive discussions and willfully furthering the division in the community.”
At the time of his expulsion, Jon was the release manager of NixOS 24.05, the planned upcoming release. He had been the release manager for three prior successful NixOS releases. Jon is an employee of Anduril.
Jon was suspended from discourse and Nix-related repositories on Github for six weeks. He was also relieved of his release manager title and duties indefinitely.
This concerned me because firing a release manager a month before release for any reason but rank incompetence seems unnecessarily risky in a project that isn't absolutely crawling with uber-competent people begging to be its release manager.
The claims about Jon up to and after his expulsion were much more pointed than those made of Eelco. Unfortunately for him, Jon had actually engaged meaningfully with other humans on GitHub and Discourse. Some claimed that — this is the least incoherent way to summarize it — that Jon caused them various forms of psychological harm. Others then asserted that his continued presence would cause an existential crisis for the people he had harmed.
The moderation action was not taken on a particular statement made by Jon, but instead a general pattern of behavior that the moderation team thought was beyond the pale.
Jon was often shown saying on the Discourse and on GitHub — in various threads related to a proposed RFC — something in the spirit of: “you are trying to include unduly specific political statements in Nix community guidelines, and the specific political statements I might actually even agree with. But they're not particularly relevant to the enterprise of creating software. They are trying to publicize that fascists are unwelcome in the community. And in general that should be true! But instead of trying to define as outgroups fascists because that makes us feel good in our official community documentation, we need to concentrate instead on disallowing specific behavior, because that is the only coherent way to run an inclusive community.”
These are not Jon’s words, they are only the sentiment I felt he was expressing. I’ve only traded ten words with him in total, none on this topic. He has spoken for himself on many platforms, so you should read what he says directly rather than relying completely on my characterization.
My take was then and even moreso now that I’ve participated in discussions with some of the same people: Jon would not just be quiet and let the folks he was arguing with get what they wanted. To shortcut the argument rather than make a case for their own position, they intimated that Jon was maybe simply one of these fascists that his interlocutors wanted to add as outgroups to various documents being discussed. When he pushed back on the intimations, his interlocutors claimed psychological harm, and Jon became painted as not only a latent fascist, but maybe even some sort of aggressor.
Jon was not pleased with these characterizations and his expulsion. He took to Reddit trying to defend his name, insistent that that the folks that that were painting him with these words were not operating honorably.
They were not.
After doing enough research, and being on the receiving end of a few of those intimations myself during these governance discussions, and having participated in an almost identical exchange, I am utterly certain the accusations made against Jon are nonsense. They were instead used as as cudgels to get him ejected. This was done by a number of malcontents and a credulous larger group of their easily-manipulated and easily-frightened supporters.
Although these malcontents may operate incidentally in the best interests of marginalized people from time to time, they aren’t primarily doing that; often they are simply inventing reasons to eject inconvenient dissenters for their own incomprehensible gain. This was one of those times.
Jon's offenses were to reasonably but forthrightly publicly disagree with a few moderators and other egomaniacs who held power over him — both implicit and explicit — and to be an Anduril employee, and no more.
Governance Discussion
On April 30, an announcement was made on Discourse that there was to be a "governance discussion" about the future of Nix under new community ownership, which seemed to be prompted by the save-nix-together letter.
I read the announcement as the desire of the current Nix foundation board to transfer control of the resources of the current foundation to a different community-run foundation, and what came out of these discussions was to be its genesis.
But after writing this, I realize I'm not really sure what the board intends to do with its current holdings. Maybe they intend to assign the Nix trademarks and give all their cash to the new governance body, but maybe they don’t. I was personally operating under the assumption the entire duration of my participation that the existing foundation would be dissolved after this new governance structure was booted up. As I’ve researched to make this screed, now I'm not sure. Our instructions and the eventual goals were very nonspecific. If my assumption turns out to have been wrong, I’m not sure I accept full blame. We were asked to make a lot of assumptions.
Regardless what the board intends to do with its holdings, it claimed it wanted "the community" to participate in the formation of a "community governance structure".
The post announced there was to be an instance of a platform called Zulip in which anyone who has any skin in the game can participate. It is meant to host discussion about how a new community-run foundation should be composed and run. Its proceedings are to be public: anyone with the URL can read all of its content. Those with a login can write messages there.
A new purpose-written code of conduct and "de-escalation agreement" were created for this process. They're both here. I think they’re fine, except, when combined, they do not specify the powers of the moderators, how decisions must be reached by the moderation team, nor what reporting must be done after a moderation action has taken place. That is left unwritten.
From what I saw, producing the new code of conduct for this conversation was contentious, which gave me hope: if it's contentious, it means it matters. I’m not sure there’s a fundamental difference between the spirit of what came came out of the process and the existing Nix CoC. I wasn't involved, and I am only relating these fights from memory, but you can track down the PR history of the CoC and deescalation procedure documents on GitHub to see.
Jon, the release manager who had been tossed out of Discourse and GitHub was invited to the Zulip instance. (Later, Jon would actually show up to these discussions and stay mostly silent. He just announced "I trust these people with my interests" and named Shea Levy, Sil Mossberger, and a couple of others who didn't really participate.)
Using a platform other than Discourse was encouraging too, as it implied a reset.
In my mind, this was all evidence that board was interested in gaining broad-spectrum consensus. I had confidence that these were actually going to be good-faith discussions that took all reasonable opinions into account.
I applied for access to the governance discussions via a GitHub comment with my bona fides about participating and I was accepted. The bar is very low. If I can participate in it, almost anyone can.
The original discourse message told us that the intent of this enterprise was to come up with a "constitutional assembly" of people by May 13. And there was a subsequent discourse message containing the mechanics.
As far as I remember, these two formed the sum total of direction for five days given to the ~300 members who would be permitted to begin to join Zulip beginning May 2.
On May 2, I logged on to the Nix governance Zulip instance. The people there were largely the same people that seemed to participate in Discourse.
To my surprise, the six-person moderation team was composed of people who had a history of being moderators on the NixOS Discourse, save one. This was weird because there had been bad blood between those particular mods and folks like Jon who felt they were unfairly moderated. If this was to be an actual consensus gathering effort for this governance process, having the same mods was a weird choice.
Even so, at this point, I still believed there was other evidence that the board actually cared about the outcome, and I had never really had any run-ins with the mods myself, so I began to participate in earnest.
We began trying to form a set of consensuses, operating under the working assumption that we had to start accepting applicants by May 9, and that we probably had to come up with the collection of people that might form the assembly by the 12th.
Thus, we found ourselves faced with these questions, which we believed had to be answered within a week:
should we appoint members to the assembly? nominees? applications?
if it was to be an application-based process, what were the questions that needed to go on the application?
what size should the assembly be?
how many seats in the assembly should be reserved for marginalized people?
what was the definition of "marginalized"?
were people with corporate interests permitted to be in the assembly?
what was the definition of "corporate interest"?
is the concept of a set of fundamental principles something we need to agree on before forming the assembly?
were there any example bodies we could steal ideas from?
are we meant to talk about governance here at all, or would that be left to the assembly members?
if we were meant to talk about governance, what kinds of governance
structures should we think about adopting?
And we talked about all of those things. And others. There was significant perceived time pressure. Many of these questions get at the very heart of very real disagreements between community members.
We tried to make it as constructive as we could but it's difficult to be maximally constructive with 20-30 people talking at the same time across several topics without clear goals and without anyone in charge. Many conversations were rambling and unfocused, and we could not really reach agreement much on what we should talk about, and which rules, if any, we should use to decide what to talk about.
As I read the comments pouring in to the Zulip instance, it became clear that even when I was a young liberal, I was far to the right of most of the people sending them. I would guess many would call themselves socialists and anarchists. They obviously weren’t required to identify their politics explicitly, so I can't be sure.
There was a thread opened about how many assembly positions should be reserved for marginalized people. I thought maybe one, maybe even two of seven was good. At the other end of the spectrum, there were people arguing for six of seven.
One clearly wouldn't be a problem to fill. Two wouldn't either. I don't know about five or six. It would depend on who they were and what the tradeoffs were. But at least there's an answer to this question that doesn't involve a significant minority sacrificing a fundamental belief, and it's a clear point of negotiation. Only the tiniest minority disagreed that marginalized people should have a reserved seat in the assembly. We could have reached a rough consensus about this, I think.
Many other threads were opened and many other ideas debated. I opened a thread with a proposal that the new foundation just basically cut and paste the structure of the Python Software Foundation via its bylaws and other documents. The PSF is famously welcoming, famously diverse, and famously successful. No one really engaged with this in any detail, or offered much of an argument for or against it. It got lost in the sea of Zulip topics because I don’t think I shouted loudly enough about it.
Around this time, another member, I will call them “Cal” from here on in (not their real name), as their first order of business opened up a thread and called “Fundamental Principles”.
Cal’s OP was this:
Given that we are discussing the act of constitution, I humbly submit three fundamental principles that I believe should meet with general approbation and inform the rest of our work. The purpose of these principles is not to replace or compete with any Code of Conduct or other formal set of rules, but to enshrine core values that the Nix community agrees are vitally important to the project.
The fundamental dignity of the person.
All people posses an essential dignity which must be honored with basic respect. All forms of racism, sexism, fascism, or any other bigotry are inimical to the Nix community.
Software must serve the common good.
The highest end of our work is to promote the common good. Private interests must never interfere with this core mission of the Nix community.
Free and open-source collaboration.
On account of the prior two axioms, Nix commits not only to developing free and open-source software, but to collective action which is itself free and open. Nix must be a community project: not an industry consortium or “benevolent” dictatorship.
Before Cal created this topic, there had been discussion in another thread that had to do with Nix's relationship to corporate interests. And Cal and a number of other people had made clear that they didn't believe that people with corporate ties should be a part of the assembly.
And this position extended to people that just worked for companies. The extreme position was: if you had a job, you were not to be an assembly member.
I don't share this view, so I thought both the "software must serve the common good" and "free and open source collaboration" items needed to be more (or less) fleshed out.
I was also uncomfortable with the explanatory text "[a]ll forms of racism, sexism, fascism, or any other bigotry are inimical to the Nix community." I thought that it would be better if we called out behaviors rather than naming specific political ideologies and moral failings.
It never really occurred to me that this take couldn’t be debated in good faith, or at least a conversation about it refereed fairly, given that it was at the heart of many historical differences on Discourse. Why would we be in these discussions otherwise?
The person that brought up the the most eloquent objections to some of the "fundamental principals" — not primarily the principles themselves, but the explanative characterizations — was Shea Levy.
I had never never even heard of Shea until I logged into the server. But he's apparently been contributing to Nix since 2011 and has contributed thousands of commits, or so I have seen it claimed.
Cal, the author of the “fundamental princples” apparently has 18 commits and began contributing in 2023, or so I have seen it claimed.
Cal’s contributions should not be discounted. I have not gone through GitHub to see what they were, and they may be very significant, and Cal may be contributing mightily to some other Nix-related project that is not in GitHub.
But clearly Shea has a lot more skin in the game.
Then again, Cal’s and Shea’s were just a names on a screen, amongst a bunch of other pseudononymous names on the screen, all seeming to carry the same imputation of importance. Cal’s name was a handle, I don’t even know their full name. There was a signup list implemented as a list of GitHub comments, in which each person applying to join the discussion had been instructed to add a link to a GitHub commit that was meant to show they had enough skin in the game to participate. Most people just added a link to a single commit and their email address. Further self-identification was discouraged by the moderators. It was not possible to meaningfully evaluate who had more experience without a significant amount of self-directed research.
The most strident people were first to create topics, and Cal was one of the first. There was no organizing happening, this was just loudest-wins-last-man-standing as far as I could tell. Was I meant to be organzing? I don’t think so. I had no standing to do so.
Shea was the first responder to Cal's principles thread. He said "[d]o we need to discuss all these together, or can we just discuss each one individually?"
And Cal responded, "I propose this for the assembly, not for governance."
The first order of business of this gathering was to produce the assembly, not the board of the new foundation or the new foundation itself, if there was to be a new foundation. The assembly will be a group of people tasked with producing the documents that will eventually result in a governance body.
We believed the first priority was get the assembly booted, and talking about the governance structure was a secondary concern. We had no real instructions, this was our best guess.
And so Shea replied to Cal, "[s]o if these principles are meant to guide the assembly itself, then setting aside the context of the principles, I think this is premature."
And Cal disagreed with this. They said, "The principles are axioms designed to ground all of our work going forward."
And Shea asked them again, "Can we discuss them individually?"
And Cal said, "I've already said I think they just need to be discussed together as whole."
This was irritating. But it's not just irritating. It is actually counter to the "Compromises and reconciliation" part of the governance discussion deescalation agreement that says:
Many disagreements are not really fundamental: often there is just a miscommunication, or some mismatch in assumptions. When it seems like you cannot find agreement, try narrowing down exactly where the disagreement comes from, what the most precise difference between your views is. Often, this will inspire new solutions that work for everyone involved, and that reconcile your differences - eliminating the disagreement entirely.
What Shea was asking for was for Cal to follow that recommendation. He didn’t name it explicitly, but it’s just the obvious thing to ask for when you’re operating in good faith.
What Cal was demanding — the indivisibility of individual points — is the opposite; it’s an escalation.
There was no organizing principle to our discussions, and absolutely no one in charge. The loudest amongst us just making up stuff to talk about first.
Just a few conservatives and libertarians, some anarchists and some socialists in a room together. And their fundamental principles. Should be fine.
No moderation or referreeing happened unless you complained to a mod in this venue. I would rather gnaw an arm off than complain to a mod, except as a last resort in the most dire of circumstances of existential importance. Others seemed to use it more liberally, if the mods were to be believed about the number of reports.
After a few more tries to get Cal to disambiguate the “principles”, Shea relented to Cal’s request, in sort of an okay, fine, we can talk about this kind of way.
"What do you propose if we don't reach a consensus on these three principles? What happens if we don't reach consensus? Who decides then and by what mechanism?"
And Cal said, "We dissolve. We stop working."
Cal demanded a conversation about the "fundamental principles" they just invented that aren't used in any other successful open source project, and if we couldn’t agree to accept them wholesale, these governance discussions should be scotched. They must be accepted as a whole largely unmodified or we all needed to go home. Should be fine.
Cal repeatedly characterized this sentiment as "if the NixOS community cannot come together and say something as simple as racism bad, open source good, then it should not continue."
Of course the "principles" don't just say “racism bad, open source good.” They talk about corporate interests, fascists, collective action, and open source collaboration, whatever that means. What these "principles" mean are non-obvious to anyone actually paying attention.
Following this exchange, in this thread, Cal repeatedly objected to requests which tried to divide these things up into consumable bits. Cal also objected to many requests made to moderate the text as a moral failure.
Cal and several others also rarely removed any quoting from their replies, so it became a maddening chore to read the history of any channel they were participating in. But who was I to tell them they needed to trim their replies?
Cal asked of us collectively (or “collectively” in my mind at least; how could we know whom they were addressing if no one is named as the single recipient of the message?) "[w]hy do any of this? Why have a code of conduct? Why work in Nix at all without these principles? Answer clearly and concisely. If you disagree with them, please explain where and why." That seemed like a question for the floor.
This was the precedent for my first credulous interaction with Cal in this thread. I said "I work on Nix because working on it occasionally gives me joy. Unlike most other technology, it also solves problems for my customers."
Cal responded to me with "what in the Principles do you reject and why?"
And I responded, testily, "I mostly feel like any response here will be met with another rhetorical question a minute after I post it. So I'll stay out of this discussion." I did for a while.
Somebody else came along and made an objection to Cal's continued rhetorical asking of "what in the principles do you reject and why" after they asked it of me and others who had given nuanced answers explaining their reasoning.
Cal dismissed the criticism agressively. “Asking for substantive comment on what we’re discussing is not an offense”.
And I said to Cal "[t]he wording in the principles you led this off with uses some charged language: "fascism", "private interests must never interfere", "collective action". I may agree in spirit with what you're trying to say, but the specific wording is clearly influenced by politics I don't really share. None of the foundations we're using as templates use this kind of language in their bylaws or social contracts AFAICT."
Cal responded "I wonder what you find troubles troublesome with the word fascism in particular?"
This is clearly not a discussion in good faith.
I reluctantly complained later to the moderators about Cal's irritating, repeated suggestions that I and others were fascists. I provided eight specific examples not unlike the ones above. Those were just the ones I could easily find; there were others. This complaint would later contribute, I think, to a temporary suspension of Cal. But who knows? The mods declined to share the specific incidents that led to any of their actions.
This was the first time I think I've appealed to a forum moderator since I was twelve. But it was the only option open to me, given the total lack of organization and preemptive moderation.
This was a clown show.
It's pitiful that I have to say this, but its omission might be seized upon by some psychopath if not: no, I am not a fascist.
Shea Levy, whom participated in these discussions turned out to be particularly skillful at constructing arguments in real time under pressure, succinctly. With a capacity to stay on topic, and follow the rules. In in this ridiculous venue with 50 or so people simultaneously participating all shouting at each other without clear goals. With a Cal insinuating repeatedly that Shea is a fascist for wanting to actually follow the deescalation suggestions in the code of conduct and no preemptive refereeing or moderation.
Even though it was by now obvious that this was an ambush and there was only losing to be done in the future, Shea then turned his entire attention to respond to the original post in some detail.
I'm going to inline it here because it is brilliant.
Though I agree in isolation with some interpretations of the top-line principles listed here, I still do not think it is appropriate to adopt your statement as-is. My reasons fall into 3 categories, in order of importance:
Relevance
Some of what is outlined here is true but not relevant to Nix as a project (and a fortiori not relevant to the up-front task of deciding on the assembly). On it’s own “the fundamental dignity of the person” probably does belong here; this is a social project and that principle is a basic rule of civilized interaction. That being said, I am deeply opposed to racism, sexism, and other forms of bigotry, but I do not see why this is so fundamentally relevant to Nix as a project; while I’m open to being corrected here, I am not aware of any enduring issues we’ve had with bigotry, and very little if any of the work of the project is properly oriented to redressing bigotry. Similarly, I hate fascism as one of the greatest evils of the modern age, but it is simply not related to anything we do with Nix except insofar as good technology enables good people to do good things and work against bad people (the one possible exception to this is the Anduril sponsorship: allowing a US military contractor to advertise and attract strong employees is actually a pretty decent way to work against fascism).
Imagine a list of 3 core principles of the Nix project, one of which was “double-entry bookkeeping is an accounting necessity”. There is absolutely nothing wrong with that principle in isolation, it is perfectly true and in fact of great value significance. But on a list of principles for Nix, it implies that a part of what we do as a project is promote/apply double-entry bookkeeping… Which is not why I’m here. Similarly, though I do dedicate efforts against fascism and similar evils, I don’t want my efforts in the Nix project to be focused on that and see no need to draw the project members’ attention to this particular issue (though of course if an opportunity arises I will gladly take it).
This objection does not apply to points 2 and 3.
Misalignment
Especially as currently written, I do not trust that we are aligned on what the nature of the values you’re defining are and how to best pursue them. I doubt we agree on what racism or fascism are in general or on what specific actions are properly classified underneath them (for example, I think most if not all affirmative action-like programs are racist, and I don’t think fascism is properly classified as a form of bigotry). I am very wary of a notion like “common good” to begin with, and certainly don’t think a version of it that views it as opposed to “private interests” is not something I share. I don’t know what is meant by “collective action which is itself free and open” or exactly what you mean by “a community project”, and I doubt I would agree with those either. I can expand on any of this if desired.
If these principles were limited to something like:
The fundamental dignity of the person is paramount
Our work must further the interests of the project
We value open source software and software development
I would be less concerned with this, though I’d still have the relevance objection as it pertains to the pre-assembly stage.
Undue specificity
Why these values or these examples, and not others? For example, suppose someone came with a list like this except element 1 was “the fundamental dignity of the white man”. Certainly, as a subcategory of person, white men have fundamental dignity. But to specify it in this way is to also exclude non-white men in a way that we would all hold to be utterly repugnant. I think a case can be made for the top-line principles here, but I have most issue with this with respect to fascism. Why fascism, specifically? Why not other forms of statism or totalitarianism? The implication is that there is a particular political view you are ascribing to the project: not only are we each individually opposed to fascism (which we probably all are), but also we are not opposed, or at least not with the same importance, to e.g. communism.
Summary
I still do not think this list of principles is needed at this stage. Setting that issue aside, I think it should be pared down and reworded to focus on issues relevant to the Nix project that we can actually align around, and we should ensure that there is nothing else which belongs on par or above these principles as core values.
Shea is not hiding his political views, nor should he have to. That's exactly the opposite is of what's being asked for.
He's also saying "let's come up with the smallest set of things that we can actually agree on", offering up some examples. This is exactly what the code of conduct asks of the contributors to these discussions.
Cal’s reply to Shea’s detailed response was ".. [y]ou and I don't share basic values, like the value of the common good. I will simply move on rather than enter a debate here.”
And then “I think your opposition to the exclusion of fascism speaks for itself. I do not believe we will reach consensus, or ultimately any productive collaboration.."
Shea did not respond to this, perhaps due to Cal’s vague “I will simply move on” statement, maybe considering it a request to disengage as per the CoC.
Cal just ignored Shea's eloquent defense but not before making sure to call him a fascist.
I started to to think to myself at this point, "You know. I'm not sure this is worth it. I don't think I want to participate in this bad faith public conversation with a person who's insinuating I’m a fascist. I don't think that's a particularly smart idea, especially given the stakes for me."
The stakes for a lot of people in here are pretty high. But they are low enough for me that I don't really need to participate if I'm going to have Tucker Carlson calling me tomorrow or something.
So at some point after thinking this, I messaged Shea and I say something like "Shea I'm not sure that I can continue to participate in this because I have reputational concerns. I know I'm acting in good faith. But, you know, I don't know how this is going to come out. You're way better at this than I am. I will continue to participate if you think I'm being helpful, but I doubt I am."
And, hilariously, Shea replied something in the spirit of "I don't care, man. You can do whatever you want to do. I don't have any reputational concerns. Walk on, son. I got this."
Pretty great.
But the dynamic in these chat rooms is really interesting because, meanwhile, there are folks that are largely well meaning earnest people participating in this thread on on “the other side” saying, “you know, you really should just say yes to this incoherent set of principles. I mean, these are obvious. A child could see that they're obvious!”
I don’t believe they’re saying this from bad faith. They're either just not very smart, or they're blinded by ideology, or they're just very young. And they're actually glad to see somebody there who's forceful and making an argument on their behalf or at least using a tactic that they think is useful, even if it’s made in intensely bad faith with the worst of intents.
There is an absolutely non-cynical argument for the set of “principles” Cal introduced. It is this: "We want to have a tightly knit community that gives maximum meaning to everyone who pledges to uphold its principles. If we can all share a similar set of values that name the outgroups and ingroups, however incoherent those values may be, the meaning that we get out of making the software will be greater. And if we if we don't specifically name our friends and enemies (imagined or real) in our values, and we simply name behaviors, then the amount of meaning we get out of this thing will be less.”
And they are right!
But I'm not looking to maximize meaning from my interaction in an open source community. I want to be governed by a body that says something like, okay, don't call each other horrible slurs, threaten each other, or creep on one another, or be extremely pushy or disruptive. If you don't do any of those things, you're welcome here, pull up a seat. I just want to be professional, write some software, make a living wage doing something I love, have fun, and avoid assholes.
The people that are arguing for Cal's fundamental principles who are operating in good faith really do have a point: having everyone align politically really does increase meaning. They would like their participation to be quasi-religious experience. But that's not what I want. I don't want my experience here to be gated by a pledge to be a warrior in a noble struggle against a shared set of enemies and I certainly don’t want to be governed by people who do want that. That is a cult.
The insistence of Cal and the credulous well-meaners backing them up that we so urgently need to define outgroups rather than unacceptable behavior felt cultish.
A participant in our later May 6 board call said with some passion “Nix is my life!” I can empathize with that, because I have moved in and out of the same situation with respect to various pieces of open source software. But I will never found, join or remain a member of a project that is a cult.
That evening, I quit participating meaningfully in the "Fundamental Principles" thread after sending a personal anecdote about why I wanted to maximize for inclusion instead of meaning.
Instructions about what the board wanted from us arrived the next day, May 6, on a board call. We only then learned that they had already decided on the makeup of the assembly. It was to be seven members: 3 long-standing members, 2 diversity seats, and 2 for external experts.
They told us they wanted us to gather applicants. Everything else was still on the table.
Shea pushed the board to tell us what else, if anything they wanted during that call. The board didn't provide much more clarity, despite Cal also asking for some. Should be fine.
I participated further somewhat unconstructively on May 6, and quit engaging in the early afternoon. I continued to read intently into the evening.
I participated in the early morning of May 7 mostly (but not entirely) constructively. By request, I tried to “steelman” Cal’s “fundamental principles” OP. I then countered it with a proposal that we instead adopt a mission statement much like the PSF’s. The idea of a mission statement gained some traction and we made some progress.
Another interlocutor countered with a rewording of the OP which was much better than Cal’s OP, and it gained large consensus, including from me.
I participated in another thread about a poll with a contentious topic I then disengaged for the remainder of the day and evening of May 7. I was reading intently after I disengaged.
On May 8, I received a message in the Moderation room. It was addressed to me and two other people.
This is a formal warning from the moderation team. We’ve repeatedly been told about a pattern of behaviour that is pushing people out of the conversation and creating an unwelcoming environment for a plurality of maintainers. This includes sucking the air out of conversations, repeated attempts at derailing conversations, and pushing for “consensus” while mostly suffering from attrition and exhaustion. Continuing this behaviour will not be tolerated, and it will be followed with a ban from Zulip until the constitutional assembly is formed.
I wasn’t asked for an apology. But there are instructions in the code of conduct to be liberal with apologies, and I took it seriously. I didn't really know exactly what I was meant to apologize for, because no specifics were given. I'm not even sure what that warning means: it’s downright incoherent in places. But it doesn’t matter. I was always polite and I tried to follow the CoC in all my interactions there even when those who were operating in bad faith did not.
So directly after I read it, I said "I apologize to those who express feeling unwelcome due to my actions and many thanks to those who I interacted with here."
The next message the same room was from the same moderator.
And for the moderation log:
Shea Levy has been suspended from the Zulip until after the Assembly is formed
Cal has been suspended from the Zulip for the next 48 hours
Shea was now suspended until after the assembly is formed, which is anywhere from, I don't know, a week to two weeks or three weeks or could be a month.
But what it means to the process is that Shea can't participate in any of the in the discussions about the formation of the assembly. And it means he won’t run for an assembly seat; even if he was allowed to, he probably wouldn’t want to, given that he had no hand in crafting its remit. And given that he was booted on jacked-up charges, why bother? Shea is not being paid, and the process is clearly corrupt.
To the extent that we know why Shea was booted (no links to actual offenses have been offered):
It was almost certainly during a process that will turn out will have been unnecessary only being done because the board gave us almost no direction.
It was because either the moderators were not paying attention to the actual dynamics of the "Fundamental Principles" conversation (or any other) or they "misinterpreted" them.
But Shea didn't get any "you're sucking the air out of the room" warnings. He was just booted.
Unlike Shea, I was permitted to continue to participate. The warning just meant that any “offense” (aka disagreement) would see me booted too.
I could have continued to participate, but there would have been no point. Clearly, I would be kicked out if I disagreed out loud, and that would have been inevitable.
I quit the process shortly thereafter on May 8, with this as my parting message:
This process began with significant confusion. The deliverables asked of its participants were not clearly defined until the first board call concluded, five days after the group was formed, and after hundreds of largely-wasted man-hours of conversation had taken place.
The process has since then been compromised due to a moderation policy that is inconsistently enforced, susceptible to manipulation, and opaque, culminating in my censure and the ban of Shea Levy apparently largely informed by those first five days of conversation.
Consequently, I withdraw from this process, as I feel it is not legitimate and that my involvement may inadvertently validate the legitimacy of its outcome.
I am open to joining governance discussions in the future if they are conducted with transparent, reliable, impartial moderation and a clear set of goals.
I have not participated there in any public conversation since.
The offense that saw Shea off was later categorized as "sealioning" by the moderation team (the offense Jon Ringer had been accused of). I was implicitly accused of the same offense in the moderation message I received.
Variously during the process, Cal would add a sealion icon to various messages of mine they disagreed with, and then quickly remove them, I guess just to bait me. To frighten me? Who could know?
This was a clown show.
"Sealioning" is supposed to be when someone repeatedly calls for discussion or debate about a topic without honoring someone else's prior-stated desire to not talk about it. And I think, applied in extreme cases, very judiciously, "no sealioning" would be a reasonable rule.
I could imagine “sealioning” inadvertently quite easily in this venue. I actually argued for suspending any rule that mentioned it or at least for defining when it would be invoked and by whom more clearly on Discourse in the run-up to the governance discussion process.
But I strongly reject any claim that I “sealioned” during this process except perhaps inadvertently. I disengaged whenever anyone clearly said they were no longer interested in talking about something, at least to the best of my ability when trying to dig through piles of replies without any quote trimming.
I’m not even sure “sealioning” is a useful concept in a forum with 300 culturally diverse strangers and no clear goals literally trying to talk about fundamental principles on a tight time schedule without active moderation.
That is a joke.
Cal, in the "first principles" thread said multiple times “we should shut this process down if we can’t reach an agreement.” Maybe when Shea or myself replied to that, it was characterized as "sealioning."
Who knows? The moderators didn’t give us links to our specific offenses. I’m just spitballing.
If someone comes in to a room and says "we should just shut this process down if we can't come to agreement", it is not the same as "I don't want to talk about this any more." The first is a negotiating position, the latter is a request to stop talking.
Thus, I believe that, either:
A contingent had as its first order of business to eliminate dissenters, and had the experience to know how to cynically work a corrupt system in order to do it.
Or:
The fix was in from the start, and Shea’s (and my) participation was just there to lend the process legitimacy. It shouldn't.
Either way, the “fundamental principles” OP was made in the worst of faith. It was designed to divide us and waste our time, much like the “Save Nix Together” letter was designed to divide us and waste our time. It appeals to noble goals but its actual motivation is clearly cynical and corrupt.
I did not always shower myself in glory participating in this process. You can read my comment history for yourself. I allowed myself to say unconstructive things at times but apologized quickly when I realized it, and I never once knowingly engaged with someone who explicitly said they no longer wanted to engage. Many of my interlocutors, on the other hand, were cheerless bullies whose continual behavior was designed to provoke a poor response.
I was censured because they didn’t agree with me and I would not simply shut up. Shea was booted for the same reason.
This process was either an embarrassing failure of predictive comprehension or the outcome was pre-ordained from the start.
Denouement
This was one of the most poorly-organized large-scale open source processes I’ve ever been involved in. The Nix Foundation board wasted five days of my time and hundreds of person-days of time of the roughly half of the attendees who have views that dissent from those of the moderation team .
The board completely abdicated their leadership and organizational responsibilities during this effort. No member of the board nor of the moderation team lived up to what was required by their roles except for Silvain Mossberger, who is clearly operating in good faith, heroically. Anyone who wishes the best for the Nix community should pray for his continued participation.
The current state of affairs is what the board wanted, either through action or inaction. The outcome of this thing must gain whatever legitimacy the board has left to confer to it.
But board, please stop wasting everyone's time. It's disrespectful to not do this.
You may not have the power to stop what’s in progress. But if the wheels come off, don’t drag it out by extending deadlines endlessly. Just shut it down, give the existing Discourse mods the remit to do whatever creepy lord of the flies thing they like and call that “the community.” It will be the same outcome either way.
Conclusion and Personal Notes
My relationship with Nix-the-software will continue.
But it's obvious that people with vaguely centrist social values and fiscally conservative values like mine aren't much welcome in the Nix community, at least as “Nix community” is defined by the board.
As a result, if I want to communicate with Nix users, it will more likely be in spaces not defined by the board or by the governance structure created by the current process. I don’t see any reason to continue to contribute to the official Nix documentation — not that I contributed much before.
This is honestly a bit of a relief; the "Nix community" never seemed to be a great fit for me. Since my first interactions with it, I've found many interactions I've had with its members in official venues joyless and strange.
It could benefit from taking itself much less seriously.
I hope eventually when some zealot begins to paint a future Jon or Eelco or Shea with outlandish, undeserved slurs, the community will find enough courage to defend them. I hope they find a reason to remove the mean-spirited zealots from power. There will be no freedom, redemption, joy or success living under their authority. They are professional dividers.
I haven't decided yet whether I will continue to produce Nix videos. I largely create these videos as evidence of competence with the technology in order to introduce the tech to customers. I won't be using Nix on new projects until the governance structure has been running for a while and proves itself competent, particularly in relation to sponsors and donor vendors.
This outcome is a minor tragedy for me. I had schemes to begin doing less web programming and more devops using Nix this year. Nix is clearly the best way to do that job. Using the technology itself brings me joy even if interacting with the community does not.
There are many whom stand on principle against any sponsor who has a significant relationship with the military. But Microsoft has had multi-billion dollar Pentagon and other agency contracts for many years now, and the things they produce are used wherever the U.S. Government wants to use them, including as tools for war and border control. I’m sure some Microsoft conference sponsorships have had detractors, but, unlike Anduril, they have not been able to effectively motivate people to sign an open protest letter calling for the ouster of the project lead of the tech related to the conference. Anduril is a much better wedge.