Broken Promises: The Nix Governance Discussions

Last updated

See the update at the end of this post

This post presupposes some level of familiarity with the ongoing work to establish new governance in the Nix project. If you don't know what's been going on, this is almost certainly not interesting to you.

Summary: I have been unjustly suspended from the NixOS governance discussion. The manner and rationale of the suspension reveals corruption of the promised objective process, and the fact of the suspension deprives the project of valuable contributions. Everyone should accept that the NixOS Foundation Board has made its decision that certain positions are not up for discussion, and either engage on their (actual, not promised) terms or part ways.

The promise of the discussion

The governance discussion has been presented as an opportunity for project members to seriously and thorougly address the state of governance in the Nix project. While much of this work obviously needs to be about the technical details of structure and process, it's clear to all parties that some of the problems the project has faced have stemmed from deep value differences that have arisen (or become evident) over time, without any clear resolution by existing leadership. The administrators of the governance discussions took steps to ensure those discussions could happen fruitfully while capturing the diverse perspectives of various Nix contributors: the code of conduct adopted for the forum allows for all earnest discussion of governance-relevant topics from all qualified parties, the bar for qualification is quite low (including allowing all temporarily suspended users and allowing banned users on a case by case basis), and the discussion has been framed as a consensus-seeking effort with norms of seeking common ground and understanding rather than faction and debate. This process is meant to be a means for (among other things) the project members to actually have an open discussion about potentially contentious highly value-laden issues and attempt to arrive at clever solutions that satisfy all parties or get clarity about the root of the divergence when no such solution is possible.

The Foundation did not have to do this. Given the state of affairs and their role, I think they would have been fully justified in simply directly adopting a new governance structure, or setting a more restrictive remit for the discussions, even if I did not like the results. Indeed, one of my chief frustrations with the project governance in its various incarnations has been preciesly the frequent failure to commit to a specific stand and execute on it. But given that they did establish such a broad baseline and mission, I thought this would be an opportunity to try again at contributing to the project's governance and see if my values could find a place in the project's organization. Had the process proceeded as it was represented, I would have been satisfied that the outcome was informed by the best reasoning and creative problem-solving of the project's bright and passionate user-base, and if the outcome was not what I would have preferred I would have accepted it as the best we could have done.

My participation up until moderation

My participation is public record, but given the high volume of the governance Zulip forum I'll touch on highlights here; of course everyone will have to evaluate my accuracy independently. I joined the forum on the morning of Friday, May 3rd, and quickly got heavily engaged. My participation included working to resolve process questions, putting forward important questions about the decisions involved in selecting a constitutional assembly, sharing my own views on these questions, working to understand and pose alternatives to others' proposals, trying to find ways to integrate the various perspectives being put forward, and summarizing existing discussions. At first many of us were under the impression that it was our goal to propose the full details of the assembly within the remaining 11 days, and given that we would have to do so by consensus (or at least whittle down the options by consensus) there was a lot of apparent time pressure leading to a very high volume of discussion over the first weekend; this impression was corrected on the Foundation board call on Monday, May 6th. In my 4 or so days of active involvement, I was part of efforts that resulted in at least clarity and often real alignment (of most parties) on some core foundational issues, and had several people privately thank me for my contributions (including those who disagreed with some of the specific values I was promoting).

Particularly relevant to my suspension was one thread proposing a set of fundamental principles to inform the work of the governance discussions. I will let those who are interested read the thread in detail to evaluate my participation for themselves; my assessment is that I did a good job of articulating my concerns with the proposed statements of the principles (and their timing) and working toward a modified statement that covered most of the same essentials without the potential problems of the original (which appeared to be appreciated by those who were still engaged in the conversation). The original author of the thread declined to engage with most of my concerns at face value, ultimately concluding that those who had concerns were not engaging in good faith and removing himself from the discussion; I respected his request and continued the discussion with others who were still participating.

In many of the relevant conversations, I spoke from and articulated views that I know many disagree with or even despise, when relevant to the topic at hand. In particular, in the fundamental principles thread one of my objections was that, as written, there was an implication that all project members hold fascism1 to be a special evil relative to other political systems of a similar kind, but that I for example held communism to be a similar kind of evil (and didn't see why that needed to be agreed upon to participate in Nix). I always did so respectfully and explained my position when it was relevant, and in many cases this led to mutual clarification and a new approach to the question at hand that worked well for all involved. I knew that in doing so (and, frankly, doing it well) there would be people who were not happy with my involvement, but I was pleasantly surprised at how many people seemed to appreciate it and remain focused on truth seeking and getting to the bottom of (potential) conflicts.

The suspension process

In the early evening on Tuesday, May 7th one of the moderators reached out and asked for a call. On the call he explained on behalf of the moderation team that I'd be suspended until the assembly was appointed (though I'd still be eligible to apply to the assembly), and attempted to articulate the reasons for the suspension. Since it was followed up with a more formal written statement and it's very hard to communicate the contents of an unrecorded call objectively, I'll just note that at the end of the call, the moderator promised a writeup explaining the reasons and the opportunity for me to send an appeal (though he said at the time he thought it was very unlikely they would change their mind).

After the call, I ceased all public communication on the Zulip (except for one purely administrative reply that I ran by the moderator before posting). Later that evening he and I discussed a bit further while he was working on consolidating notes, and he apparently got more clarity on the situation. I went to bed before he finished, and received the following explanation when I woke up this morning (very lightly modified to fit paragraph flow):

After careful review of both the thread and the mod team notes, I think I understand the core of the issue. I'll just share it here:

The context to the debate is that most people were under the assumption that consensus and proposals developed in Zulip would be approved by the board, which was later clarified to not be the case.

The topic started by with a proposal to enshrine certain fundamental principles that the Nix community agrees are important.

@shlevy is deemed to have disrupted the proceedings with bad faith invitations to engage in debate. This includes arguments about it being too early for this decision, that the values were too specific and how they were not relevant to Nix, summarised by @shlevy here.

Actually that's still a draft, let me just briefly check with the mod team. It's definitely something like that though. The important part is that it's not any message in particular, but rather the overall invitation of more debate, leading to an explosion of the thread.

As promised, I can forward a small appeal to the moderation team (or you could also PM the @Moderators directly), please keep it to a couple sentences at most. Don't expect this to work, but that's what I've promised you.

And I replied:

My engagement in this process has been an earnest attempt at seeking to explain my perspective on issues of importance, understand the views of those who have a different perspective, and work toward identifying common ground through reframing, persuasion, and alternative solutions aimed at meeting the concerns of all parties who have participated in the discussion. On several occasions, including in the thread in question, this has resulted in me understanding others better, others evidently understanding me better, and movement toward resolutions that have broader buy-in and could be a basis for moving forward productively. When any individual indicated a lack of interest in continuing the discussion, I respected that and continued my engagement with those who did still see the possibility of further progress. I deny any bad faith in my attempts to work through this or any other issue on this Zulip.

This is not part of my appeal, but I think it’s somewhat ironic that the thread you’ve used as an example starts with me trying to say that we could defer resolving the contentious conversation until we have the deadlock-breaking mechanism of the assembly in place.

Later in the morning my account was deactivated, and the ban was eventually announced and explained on Zulip (excerpted from messages from various mods, leaving out other interleaved conversation):

Shea Levy has been suspended from the Zulip until after the Assembly is formed

In @shlevy's case this was primarily related to a pattern of bad faith invitations to debate that led to the exclusion of other participants.

The vote was unanimous after reviewing copious amounts of interactions and complaints alongside messages from folks who have not felt safe joining this space because of those actions.

After reaching the decision in the mod meeting, I had like an hour long call with Shea to explain the reasoning. I struggled to form words and give a clear explanation, so I took it upon myself to carefully review the messages over the next couple hours and write down the reason more clearly, and even offered to forward an appeal by Shea to the mod team for reconsideration. Ultimately I've reached the conclusion that I agree with the verdict, which was only reinforced when I reassessed Shea's disrespectful behavior in the call we had.

As for "disrespectful behavior" on the call: While I was polite to the moderator for the duration, I did say forthrightly that I had lost my respect for the moderation team as a body and shared why I thought this decision severely undermined the whole process.

My assessment of the events

When this process started, many people expressed doubts about the possibility of meaningful discussion, and anticipated bans and other mistreatment of those who expressed views outside of a certain narrow window. I thought these worries were plausible, but also thought that the setup we had meant that it was possible we could achieve a better outcome and get better views represented. Until the moderator called, I think this was actually true, and was very optimistic about the process as a whole (despite having misgivings about a few specific individuals); indeed, I've come away from this much more optimistic about the potential of genuine consensus-seeking processes in general. Unfortunately, the skeptics turned out to be right in the end.

As a matter of process, this has demonstrated the non-objectivity of the moderation team's methods. I was given no warnings. At no point did anyone attempt deescalation or conflict resolution. No complaints about these posts were addressed to me, and no explanation was given as to why "folks… have not felt safe joining". I was not in fact operating in bad faith, I've seen no reason to justify an impression of bad faith, and the moderators made no efforts to inquire as to whether or not I was operating in good faith. It is clear to me that a major (if not exclusive) part of the reason for my suspension was that I held and expressed views that are considered beyond the pale. The result of this is that the entire governance process is corrupted: the assembly will be formed and informed with input from the forum, and it seems likely that the forum will be moderated by the same group even during the assembly.

As a matter of impact, this decision also weakens the remainder of the pre-assembly phase of the process. I had concrete plans for several contributions, including articulating one of the more pertinent value divides I see in the project (to get both sides of that divide clearer on the issue, and to advocate for inclusion in the assembly of those who could represent either side), a more holistic effort of summarization to give people an easier way to understand what has been happening and what the major lines of agreement and disagreement are, and I was considering applying to the assembly myself. None of that will happen now, and that's without even considering how I might have participated in the post-assembly phase (the fact that I would technically be allowed to attend that phase and even apply is of no value; I cannot participate under the actual limitations, and the idea that my application could be taken seriously when I'm not allowed in the discussion of it is laughable).

Ultimately, I place the blame for this situation on the Foundation Board. It's true that they were not directly involved in the moderation decision (though I was told they were aware of it in advance), but they should have known when setting up this kind of endeavor that it would require very careful consideration of moderators and their scope. It was clear long before now that the existing moderator team was at least worth thinking twice about, and if it wasn't clear in advance there were several people bringing up these concerns when it was shared that the same moderators would be in charge of the discussion. Or if the Board is in fact in agreement with removing people from the conversation due to holding views like mine, they should never have set expectations to the contrary; as I said above, I think it would have been fully in their purview (not just legally, but morally) to set more restrictive bounds on the conversation than they in fact did. As it is, however, they failed to do the predictable work needed to ensure the success of their stated project.

Moving forward

Whether they intended to or not, in fact the Board has committed to this process being subject to the range of values and beliefs acceptable to the moderation team. They should've been forthright about it, but at the end of the day they are the closest thing Nix has to a legitimate authority and I think the governance system that results from this process, whatever its nature, will in fact be the legitimate arbiter of the common rivalrous resources of the Nix project. For those who are opposed to this fact about the process, I ask you to take this seriously: It is their process, and they have made the terms clear to those who care to see. If you continue to participate in the hopes of influencing a better outcome, do so with full consent to those terms; do not "demand" any changes, do not disrupt, do not troll. If you decide to disengage, disengage. Don't continue to snipe on the sidelines or scheme for a way to force a change, say your piece and then move on.

As for myself, the latter is what I intend to do. If I am able to log back on at the end of my suspension, I will check a few DMs from private conversations that were interrupted by the ban and then deactivate my account. I will continue using the various Nix technologies (for the time being, at least), and make smaller contributions on GitHub where relevant, but will do my work in third-party spaces where possible and not get involved in the overall direction of the project or the official social spaces. If the governance changes radically, or a new project is started, I will consider joining. It's been 13 years as an active participant in the Nix project, and I'm sad it's come to this, but at the end of the day I can still use the tools I need and do the work I want to do.

Update: Response to the assembly appointment

The assembly has been announced. For the reasons outlined above, and reinforced by the fact that 3 of the 7 members of the assembly are incumbent moderators, I will not be following or participating in the rest of the process. I will evaluate the final governance structure they come up with to determine if enough has changed to warrant reconsideration.

While I welcome anyone operating in good faith to reach out to me2, I will not do anything that I think might be used to grant the process legitimacy or protect it from the consequences of its non-objective nature.


If you're wondering why fascism even came up, well, that was another of my objections to the statement of principles.


Not on Zulip, though, as I've deactivated my unsuspended account there.

comments powered by Disqus