GitHub block evasion is not acceptable

i don’t think there’s anything unclear about this. sandro is going out of his way to block evade and comment in places he is unwanted, causing additional conflict.

1 Like

Dumb question: Who is evade? I don’t see a github handle, or maintainer. Trying to find context as to why that comment was made in the middle of a thread about python packages

evade as in circumvent. he is circumventing measures that other people have taken to indicate that they want him to stop interacting with them

1 Like

Feels like a misunderstanding.
I read “block evade” as a single verb.


Oh, I feel dumb. I kept reading that as “block(verb) evade(person)”, and thought it was weird. “block-evade” would probably be more clear, but looks like no one uses this spelling. E.g. man-eating shark vs man eating shark. English, gotta love it.

But the commentary on the PR is correct, the release dates did change.

Anyway, it’s unfortunate that even with meaningful commentary, he’s no longer able to communicate to other contributors. And now is essentially a pariah for parts of the community.

Anyway, this whole thing is just… unfortunate on many levels.

Edit: grammar

On the question of “block evade”, I want to ask if the suggested condemnable behavior is:

  • Direct consciously unsolicited contact against stated will?


  • Public interaction in a public space where one person is using the public space as a pretext to consciously engage in unsolicited contact against stated will?


  • Public interaction in the normal course of public affairs without an element of conscious intent to attempt against stated will?

To judge, those three cases are inherently different. It will be easy to agree on the first two cases as to be not acceptable. It will be impossible to agree to condemn the third case as that would be equal to overruling basic liberties in the public domain.

Sorry for interrupting the meaningful conversation, but I would just like to mention that I talked to @Sandro, and we agreed on a few things to make his reviews a little less “exhausting” for individuals, and try to avoid a situation where people feel obligated to block him in the first place.


  • comments about formating will mostly just collapse to a recommendation to use nixpkgs-fmt to format the file in question. And avoid commenting on formatting that doesn’t really affect readability (still subjective, but avoid death by a thousand cuts).
  • use of saved replies (when applicable) to create more detailed responses, to help identify the issue, give some justification to the change, and provide guidance on remedying an issue; instead of terse responses just identifying in an issue, and may come off as a rude command without context.

There’s still a lot of commentary that he provides which would improve nixpkgs, as well as his dedication to providing reviews for nixpkgs. So I don’t want him to be ostracized and unable to add input PR reviews. Nixpkgs is in need of more committer / reviewer engagement, and I don’t see any ill intent in his participation with Nixpkgs.


I agree with the points made about empowering moderators to act, for us to act as a community in response to this behavior.

I am wholeheartedly empathetic and have all the time in the world for anybody who wants to voice issues, especially since this is a project I spend countless personal hours on that I adore and want to see thrive.

If people feel targeted and attacked, it needs to be let out, somehow.

This is not new, or unique. It happens everywhere online and even offline. Anecdotally, I live with 13 people (mostly techies) in a communal space and these issues crop up all the time. We even use Gitlab as an issue tracker for every life issue we have, which is why I find this to be comparable. This thread reminds me of it. Though, in the end we have to find a way to continue living together, because we all have skills that contribute to the project we’re working on that fill in each other’s gaps. I’ve found that in real life, people make up their differences more often than online.

Some thoughts:

Blocking someone means you have chosen to opt out of working together and co-operating. Even if it is against one person.

Yet, open source is about working together. There is a conflict here. The act of blocking causes the issue, whether it’s warranted or not. (I am not suggesting that the block function shouldn’t be used.)

The nature of this scenario is bound to cause ongoing difficulty, I do not expect this thread to be the last of its kind since the action of blocking someone is so at-odds with the philosophy of working on an open source project.

If you are being harassed, all we can do is continue to socially reject that party. This is the nature of the internet. The block button is never good enough.

Can we keep working to make this project even better? Even those that are adversarial and even offensive towards eachother? Can we do the impossible? :cowboy_hat_face:


@blaggacao I’m going to intentionally hold off on answering that in any detail, because I think I’m not the only person who can answer it and I want to leave room for other people to do some of the talking. I certainly do see your objection to the third case, and I agree with it. If nobody’s weighed in in a day or so, I’ll check back.

@jonringer Thanks very much for that update. I personally hold no ill will towards Sandro, or anyone else involved in this mess. This issue is being raised because of a practical need. I am committed to minimizing the collateral damage from meeting that need.


My take on the thread’s original title: I’m hesitant to say either way about the acceptability of block evasion in itself. My main concern is that since this is an open source project, no-one should have the ability to banish others from public discussion. We should be welcoming to all opinions and contributors, whether we like the person or not. It’s problematic that GitHub’s tools allow this kind of blocking. The fact that in GitHub one can block someone at will, and GitHub’s terms of service forbid block evasion, even if the evasion’s purpose is to attend public discussion, hints that GitHub’s tools and terms of service may not be suitable for open source, I think.

I don’t mean to say nothing should be done about spamming, harassing, or other sorts of abusive behaviour, merely that blocking people from public discussion is not right. I highlight that I used the word “discussion”. Blocking spammers and clear abuse might be reasonable, but I think if anything, the individual posts should be blocked, not a user. @jonringer 's attempts to solve this dispute by talking to the involved persons in private is the best way to ensure all parties can continue to contribute. I would like to avoid blocking users (and their posts, if possible) as much as possible.

And thank you @qyliss for opening this thread. This discussion has clearly been long overdue.


I agree on this social standard. I think this is a reasonable behavior to expect from contributors.

The original post is not about requesting any org-level ban. The point here is about not using technical counter-measures to bypass the GitHub anti-harassment features. The qualification about what’s harassment and whatnot is besides the point.


I argued that GitHub’s blocking features are an ill fit for an open source project, which is why I understand if someone wants to circumvent those. If I understand correctly (correct me if I’m wrong), any GitHub user can block any other user, and that means the blocked person couldn’t take part in a PR discussion initiated by the blocking person. This is why I don’t want to categorically condemn a technical circumvention if a user is otherwise blocked from public discussion, as literally anyone can block anyone else without any reason.

To me, using GitHub’s technical tools to prevent others from taking part in public discussion is an abuse of those tools, which is why I find it justified in some situations to circumvent blocking.

I think you misinterpreted the purpose of my middle paragraph. I didn’t try to define what is and isn’t harassment, only that blocking in itself is very problematic, although I can see it also has its uses.

1 Like

On just the most fundamental level I completely agree. If person A blocked person B, the bare minimum person B could do is stop interacting with person A. Even if the block is by mistake, or for some totally bizarre reason person B should have the good sense to stop trying to talk to them. It isn’t for the community to decide if a block is warranted, and it isn’t up to person B to decide if the block is warranted.


“Even if the block is by mistake, or for some totally bizarre reason”: that’s passive-aggressive communication. I’m not saying this is what happened here and I agree each person has the right to block, but let’s not romanticize such a communication style. It has its downsides.

Back on the topic: the argument made was that person B wants to talk to person C, but can’t due to how GitHub works as person A has blocked B. I hope we can address that, otherwise we’ll soon have a “too many walls” problem. Is there maybe a browser extension that removes user comments while still allowing person B to comment on all threads/issues?

If I understand everyone correctly, person A and person B can both get what they want.


The importance of this is noted later: it isn’t up to the community (or the person blocked) to decide if a block was justified, and any block could be for any number of reasons. Classifying a block can dig in to potentially very personal information, harming the person who is trying to escape a bad situation.

I agree we want to avoid blocks when possible by addressing community issues when possible, but blocks are a good solution when needed. In this case the issue has been simmering for some time, I wonder how we can improve this specific situation?


We’re all at a party to have fun. It sucks when there is a conflict.

The issue is that when a conflict happens there is nobody to talk to. The person’s only recourse is to either leave, block, or take it publicly as we have seen in the other thread. Neither solution is good. There should be a clear escalation policy and guideline that we can point people to. It would also help to catch those conflicts early so they can be resolved and not fester.

Let’s PM and put this in place.


I think having some mediator is a good policy to have. Even better if we can many people. Individuals (myself included) have many conscious and unconscious biases, and wouldn’t want a single person to determine the fate of anyone in particular.

Be even better if the people selected have a de-escalating personality or history.

Also, with how active nixpkgs is (one of the most active on github), it’s unlikely that a single person would have previous context of past events.


Yes, and the goal of the team is not to judge anybody. The goal is to listen and mediate.


I’m very much in favor of mediation being part of the process. I think it’s really important for talking things through to be the normal approach, the one that’s used in common situations. I also think that there need to be remedies when it fails. If we force people into mediation as the only remedy for conflict, that’s not justice; it needs to be something that people buy into voluntarily, because it’s preferable to the alternatives.

Blocking, and respecting blocks, is one of those alternatives. The more extreme option is for people who’ve reached that point to simply leave our community. That one is always on the table (since we’re not a government, just a technical project), and if we pretend that it doesn’t happen, we’re doing people a disservice.

I’m mentioning this to remind people that it’s not either-or. These strategies work together; it’s a form of defense-in-depth. The better our mediation process is, the less often other remedies will be necessary.

Edit to add: I inadvertently replied to @jonringer instead of at the top level. Please don’t read anything into that. I’m new to Discourse.


To continue on the party analogy, the person avoiding the block is that rude person that is too dense to understand social cues. At some point, somebody has to step in to tell them to stop because they are upsetting.