The problem I have seen is that certain usually vocal members of a community can have this double-edged helpful-jerk attitude. Most of the time I just lurk on communities, so the jerkiness is rarely if ever even directed at me, but it changes my view of the project to the point where I just don't want to be involved.
The usual pattern is a post or response to a bug report, patch or question that is generally helpful but at the same time needlessly nasty or snarky, and with a I-know-better-than-you attitude. If the community person dislikes the question asked, or the use that people make of their software, why do they take the time to write answers at all? Usually being pleasant is a question of writing less words as well. These people go out of their way to add snark to the response.
This isn't limited to "open source". It is probably just a people problem. I've seen the exact same thing on guitar forums. Members that post helpful replies, but spread a layer of snark over them. You follow their profile and they often have websites with lots of good free information, lessons and whatnot, but here they are, writing twatish answers. It has been a problem on stackoverflow.com too, and they really stirred things up over there recently trying to herd people into being a bit nicer.
The most infuriating responses come when I've put a bunch of time into constructing a careful bug report (maybe several hours after narrowing down the problem), and some idiot comes along and closes it, telling me to post support questions elsewhere. It usually takes the form of bug report -> here's a workaround -> no, doesn't help -> idiot jumps in and says "Please file support requests elsewhere. I'm closing this."
Small, actively maintained projects are often very welcoming and happy to have any help.
- MYOB fail, as mentioned, sigh.
- Closing issues before they're resolved. Proper etiquette is to let the filer close it after it's fixed and working.
- People demanding features or making vague trouble reports.
- Submitting a properly-tested PR that fixes an issue without need for a fix-it issue.
- Committers open to some globally-beneficial change only to change their mind after it's already done.
- People refactoring your commit with something better.
- Rust and a lot of small languages have tiny, good communities of generally humble badasses.
- People changing whitespaces or switching to British grammar. SMH.
I look at it this way: you gotta take the shit with sugar. Not trying to contribute upstream is consuming without producing... I'm against this because it helps no one and it's uncool.
PR pull request
SMH = shake/shaking my head
I've even found myself having to reject contributions purely for the reason of, "your code is good but it's too much.. I don't want to maintain that."
Believe me it sucks to reject a significant contribution, but the fact is that what often happens from experience, is that someone scratches their own itch, submits a huge patch, and then walks away once it is accepted. And then it does indeed become my job to maintain a bunch of code that I didn't write and aren't familiar with.
So I find that these silly practical issues crop up a lot that have nothing to do with code quality per se, but more to do with being pragmatic about maintenance and the goals for a given code base. It's hard to know how to give the right answer, socially speaking, and I think I have definitely come off as snarky in the past doing so, but it's not intentional. Sometimes acceptance or rejection simply doesn't depend on the code but on other factors that are hard to convey properly on an online forum.
At least the message for contributors is, small one-off fixes are one thing, but if you're going to spend significant time working on something, please discuss it upstream before proposing a huge patch that might not even be something we want to integrate.
All of this is how it's supposed to work. You are in control.
That said, of course there's no moral obligation to contribute. However, as an original author of several open source projects, I take this as a helpful lesson around inviting others who don't have a moral obligation to feel welcome to contribute, and even find some way to reward them, even if I can only afford public praise at the time.
I definitely believe that any open source project should to the best of its ability make it easy for users to contribute back upstream. That requires a welcoming community, a sane design, good documentation, etc. Many projects fail and lose out on worthy contributions as a result. That certainly is sad.
But I just wanted push back against the idea that some have that people should always be contributing their changes upstream. I don't even mean to focus on any moral obligations. As a user of open source software, you should make changes to fit yourself and your needs without regard to others. Sometimes your changes might make sense to upstream, but often they are just changes that you prefer. The real-life parallel would be painting a cool design on your ikea furniture. Just because you like it, doesn't mean ikea needs to know or that you should feel any sort of obligation to tell them or any others about it. It's your furniture and you should make it the way you want it.
Maybe I'm just blabbering, since I don't think we really disagree, but I just want people to remember that open source gives users the freedom to mess with software in whatever way they want without any pressure or need to make it look nice or to give it to others. It's their computer and they can make the software run as they wish.
What's problematic is when the balance shifts and the bulk of interesting developments is done in private forks.
If you have a patch, and others know how to make it better, why would you forgo that chance to learn something?
What good can possibly come out of "I'll just hide in my shed" and tell nobody about my patch (that is what the OP recommended, invite-only repositories).
You submitting patches has nothing to do with the community.
You submitting patches has everything to do with:
a) improving the patch to maximize its usefulness
b) the project becoming better
c) you becoming better
d) the project taking over maintenance of your patch so you don't have to.
If you have a patch, and others know how
to make it better, why would you forgo
that chance to learn something?
At the same time, many open source projects are subject to constraints or requirements that are entirely reasonable from their perspective but that take time and don't much help or educate me as a one-off contributor.
* Paperwork like contributor license agreements
* Supporting obsolete (or nearly obsolete) platforms, and avoiding modern language features to maintain that support.
* Compatibility with project features I don't use, but other people do.
* Getting all the integration and test features of a finicky build pipeline to work, not just those needed to make a build.
* Correctly dividing up changes in multiple areas into multiple patches reflecting the fact different changes will need to be reviewed by different people.
* Requirements like code style and automated test coverage that contribute statistically to lower bug counts at the project level, but that don't reveal any bugs in my specific contribution.
* Code structure issues specific to the project, which as a one-shot contributor it isn't productive for the project to educate me about.
* Conflicts with planned future changes that aren't really documented very well anywhere - or that are documented only in places I didn't find, like the archives of a high-traffic mailing list.
The patch methodology will be probably criticized. Sometimes this criticism will go beyond the boundaries and leak to personal space of the developer, and the dialog will turn abrasive or abusive.
And a patch written in two days will be revised an revised for weeks. Not all revisions will be made for logical or legitimate reasons.
Then the developer will submit its patch, it'll be accepted at last, and the developer will never patch anything again, for ever. It'll be burnt out in a single patch.
Some communities do this, and often they don't know what they're doing.
I personally wouldn't do kernel patches. Heck, can't dare to ask anything to the list. Because I don't want the harassment. Also there's the silent ignorance in the mailing lists because your question is too basic or uninteresting or just posted to wrong-ish list. That's a different matter, but results in the same avoidance reflex.
I tried to submit a patch once (https://patchwork.ozlabs.org/patch/660921/) - which to me felt exactly as you described. I didn’t get the reply to my questions questioning the review comment (maybe I didn’t understand it completely so was not worthy of a response?).
In any case, luckily that was not in a critical path for me and then I have moved to a different project so I abandoned it - just seemed like a not so productive/happy use of my time.
And now I feel actively disinterested to ever attempt contributing again.
I can see the other side of the coin as well - the need to maintain the code quality, and probably the burnout of multiple “stupid” questions/patches. I can imagine how it gets tiring especially if one does it in their spare time.
Do I have the right to say “they need to be more patient/welcoming”? Probably I don’t - but equally I don’t fancy being someone’s emotional grounding.
So I will rather stay on the sidelines.
It gets tiring only if you despise answering these "basic" and/or seemingly "stupid" questions. In my day job I'm a system administrator of an HPC cluster, and we also do technical support ourselves. Users ask questions "wrong" all the time. Not enough information, seemingly simple details, etc. I personally never get mad at them, because they don't know how to do it better. We generally try to guide them, point to the correct places, test the problem ourselves, and see what happens, but never intentionally harass them.
You can maintain the code quality with a polite "Why this patch didn't pass the inspection" letter. There's a similar effort called "I downvoted because" , but even giving links from that page requires some niceness. Just pasting the relevant URL also looks and feels rude.
If a user is intentionally volatile, we defuse them. If they're intentionally malicious, we block/prevent them. If they're intentionally smarmy or snarky, they get polite but firm answers. At the end they cool down, because they cannot fuel their anger with our reactions.
> Do I have the right to say “they need to be more patient/welcoming”? Probably I don’t - but equally I don’t fancy being someone’s emotional grounding.
They don't need to be patient, if one is intentionally testing their patience. They don't need to be (overly) welcoming, but they need to be polite enough to tell that, or point the person to right way. Saying "no" is not a problem, but not pointing the next step is problematic, especially if the asking person doesn't know the better.
At the end, these behaviors are not because of the person asking the question, or sending in that "stupid" patch. It's about the person who's reacting to the patch/question/whatever. They don't like something, or see something and get triggered, then unload all the rage upon the asking person regardless of relevance of the rage.
For one, knowing oneself better is as essential knowing the stuff that you're working on. Having a baseline niceness is a win for everyone, because it makes life much simpler without softening boundaries. In fact, it strengthens them without making them intimidating.
Programming is creative. Just like artists, writers, any other creative process. We get emotionally involved with our work and we become emotionally vulnerable when we show our work to others.
So submitting code to the scrutiny of others is a vulnerable space for me. If the reaction of others is "this sucks" then I have a negative emotional reaction to that. I understand that this reaction is my problem, I'm not blaming the other person for their response, but I still have a negative emotional reaction.
I do not want to emotionally disassociate myself from my creative work so that I no longer have this reaction. I enjoy being this emotionally connected to my work.
I'd rather not show my work to others, or to only selected people who I can trust not to respond with something that will hurt me. I know this about myself.
0.) There are many people who purposely insult others and then brag about it. When I go out of my way to make you pissed off for own pleasure, then blaming you for being angry is unfair. Then there are people who push and see how you react. If you are doormat, you get more abuse. Here insult have purpose.
1.) This ideology is more focused on pretending emotions don't exist or framing you as bad/weak if you have then. But, it allows you to "retaliate" against third parties.
2.) It is asymetric. Insulted person is expected to have perfect emotional control while the lack of such control on the side of the one who insulted you is ignored or seen as strength.
3.) It leaves you with two options - leaving or bending over to abusive people. There is little space for standing for yourself without becoming abusive yourself.
Imagine a group of respectful people competing with each other. Then the abuser comes in and intentionally causes stress and discomfort to competitors. If you don't allow the respectful people to address his behavior or openly talk about its consequences without sounding "weak", then the abuser is in advantage. They spend effort to manage those negative emotions while he does not have to. He is less in advantage where "stop insulting me" or "stop constantly undermine me" are legitimate things to say.
Every kind of bullying is deteriorating and highly damaging. I've experienced this for 10 years straight, and I decided that I will never do anything to anyone that I don't want to experience (Don't sow anything you don't want to reap).
However in real life, we need to protect ourselves against these manipulators and bullies. We can overpower them, we can play their game or we just become too hard to attack. I've chosen the third way. When someone attacks me in any way, I don't provide them any fuel with my anger or sorrow. I give them nothing. If they're criticizing me, I note words (but not the emotions), and give them a hard think. If I can get anything useful from it, I use the advice. If nothing comes out, I throw everything away.
Of course I'm not perfect at this, I also have soft sides. I sometimes short circuit after the event, but I sorted out most problematic parts of my life that way. I even saved my career that way. It's not an easy thing, but it's highly rewarding if you ask me.
I know this will be hard to listen to, but it is my truth.
I was bullied because I gave them my power. When I took responsibility for my emotions, and refused to fear them, it all changed. Power comes with responsibility. When I took responsibility for my fear away from them, I could take my power back and it all stopped.
It sounds like victim blaming, I know. "Just ignore them and they'll go away". All that crap. For me, it was more like "no one is ever doing that to me again". I refused to be afraid any more. I would face them, fight them, do whatever it took, take whatever they did to me, but I would not be afraid any more.
I am responsible for my emotions. I refuse to give anyone else that power over me.
I would also add that there are many people who are not bullies and still may do something bully-like without realizing it. I know few people like that - somehow they are not good at seeing your reaction the way others do and are bad at predicting it. With them, if you just let it be, then it get worst. If you openly tell them to stop and explain how it hurts those around, then it gets better.
Even neurotypical people including me can do hurtful things without realizing. Feedback and communication helps.
I am responsible for my emotions, but that doesn't mean I have to apologise for them. If I think someone is acting like a dick, and my reaction to that is stress and anger, I'm OK with accepting responsibility for my anger and showing it anyway. I am human, I have inappropriate emotions at times.
However, blaming the other person because "they made me feel angry" is not helpful. They acted like a dick, and they have to accept responsibility for that. I got angry, and that's my responsibility. I could have chosen not to get angry, and I refuse to give the power to make that choice to someone who acts like a dick.
Responsibility and authority go together. Accepting authority over my emotions means I have to accept responsibility for them. Refusing to accept responsibility for my emotions also means I'm refusing my authority over my emotions. Giving others control over my emotions is not going to lead to good things.
> I do not want to emotionally disassociate myself from my creative work so that I no longer have this reaction. I enjoy being this emotionally connected to my work.
I also see programming as a form of art, and I'm also attached to my code emotionally, however you need to understand that, when someone says that your code "sucks" it's their point of view. Neither you nor your code sucks. It may not be doing something in a certain way the critical person likes or prefers. Even if your patch is plain wrong, this doesn't change the real value of you or your code. You've put the effort and tried something. You're the man in the arena .
If the person is agreeable, you can talk and improve the code and the persons involved in this. If not, do not take the critics' criticisms and move on. Even if your patch or code is wrong, it doesn't give the person the right to hurt you. So don't allow him/her to do so.
The critic might be right in its words, but wrong in its attitude. You can learn to separate the two, and thank for the advice while giving back the thorny part. Yes it's a very hard thing to learn, but when you learn it, you can keep the ability without much maintenance. When you learn this skill, you do not emotionally disconnect from your work. On the contrary, your connection is stronger and the elements cannot affect this connection between you and your work. Also, you have a much pure and powerful kind of empathy as a result of this learning process. Because you can look from the eyes of the critic, with the disconnection of the critic from your life and work, and process this criticism with the emotional connection to your code. This transforms the whole situation into something hard to describe, but it's very powerful indeed. Last but not the least, it's free from the emotional damage that critic deals (knowingly or unknowingly).
Code on, keep creating and at least put it somewhere visible. You don't need to shout about it.
But add the emotional vulnerability to the well-known entitlement stuff ("I used your code in my project and it doesn't work, so you need to fix it"), and the hassle of dealing with other people (ugh), and, well... why bother?
The upside that you describe - or struggle to describe... I've never experienced that. I find myself explaining my code to someone because they criticised it without understanding it, and there's no feelgood there. I wish there was.
That's a good strategy too, however I do not explicitly use the things I said as a "strategy". I always live like that, so it can be said that it's my default mode. However, I need to say I was much like you. With some hard work and determination I've changed myself.
> But add the emotional vulnerability to the well-known entitlement stuff ("I used your code in my project and it doesn't work, so you need to fix it"), and the hassle of dealing with other people (ugh), and, well... why bother?
I wouldn't bother too, but send them a bug report template to fill. If they say it doesn't work, they need to put the money where their mouth is, and tell me exactly why and how it doesn't work.
> The upside that you describe - or struggle to describe... I've never experienced that. I find myself explaining my code to someone because they criticised it without understanding it, and there's no feelgood there. I wish there was.
You're telling yourself. My code didn't suck, but they didn't read/understand it. Don't forget that the problem is on the other side of the fence. You don't need to feel bad, because the other side didn't understand it. It's not because your code sucked. Don't let them throw their frustration to your turf.
The difference is that you are paid to do that. You are not helping those people out of personal altruism, so wasted time is not lost. You did a successful job nonetheless.
If I on the other hand like to help people with coding problems in my free time, and they don't even bother to properly format the code they want me to look at, I'm wasting time if I still try to read it. My free time, and other peoples time that would need some help too.
I'm not working as a system administrator for its pay, I work here because I like my job. Payment is a side effect of it. So it's like a paying hobby for me. It also other side benefits like being able to carry my academic knowledge to my work and vice versa.
> , so wasted time is not lost.
I do not consider helping a person to learn something, to show something they don't know, or to point them the right direction as wasted time. It's kind of planting seeds. It may come alive or not. I just put in the effort that I can.
> You did a successful job nonetheless.
Honestly, thanks. :)
> If I on the other hand like to help people with coding problems in my free time, and they don't even bother to properly format the code they want me to look at, I'm wasting time if I still try to read it.
I'd auto-format in Eclipse and try to read for five minutes. If I fail, then I send back my formatting work and politely ask for making it more readable. This is my way of saying no: "Hey I can't help you, but that's what I've done while my time allowed. If you do your part, I'll try again to do my part when I have more free time."
My time, and nobody's time is for free, and using it effectively is very wise, you're right!
Jumped through their hoops, was met with denial and skepticism of a problem hundreds of people were reporting, that is until one of the skeptical project members independently cited a standard that I had cited in my pull request. We go back and forth for two weeks to refine the pull request, where I am doing all of the revisions. Eventually they're given approval and I assume all is well.
About three months went by, their product is still broken so I check on the pull request and it appears that the relevant people tested and approved of my patch... but they wanted a test suite written for it. They expected me to write and submit tests for their broken product after spending a month of my free on their project.
I was left with feeling as though Google employees should just do their jobs if they want their products to work, as I'm not wasting any more of my time by doing work for them for free.
This is a sharp contrast with other projects I've contributed to, where the response has been "Thanks for pointing out a problem with our project, let's do everything we can to fix it" instead of an uphill battle that was my experience with Google.
Otherwise it's just the same thing as child labor. Unethical, ugly, and sad.
I'm not known for my positive view of humanity, but I don't believe that's true at all. "Toxic" doesn't apply to anyone short of a true saint. It's meant for people who exhibit specific behaviors that undermine others' confidence, satisfaction, etc. If a person X who seems above average in collaborative and supportive behavior to everyone else has a single bad interaction with another person Y, does that make X toxic? Of course not. It probably means Y is toxic, and is projecting their own toxicity onto others. Who's the lazy one? Who's evading responsibility for their own outcomes? Whose character does that reflect on?
We've come a long way from the RTFM days but learning something as complicated as programming tends to make people sensitive about what they do and don't know.
It's a delicate balance. On one hand the project and the community benefits from a lot of ideas. On the other hand, a strong ego with poor understanding can not only destroy a project, they can cost a lot of people a lot of time, money, and heartache so some sort of barrier to entry that turns some people away isn't a bad thing.
At the end of the day, it'll all work itself out as long as we keep the projects open and free. Popular projects attract talent which in turn improve those projects.
Personally I'm playing with computers since Commodore64 days. I'm occasionally publishing papers about algorithms that solve real problems that I develop (just submitted one yesterday). I'm confident about my skills, and generally know about my stuff, however I don't like uncivilized brawl.
So to be able to be a developer whose patches to be accepted, I need to be a person who can put up with snarky comments, and be able to return them with the same level of abusiveness?
Sorry. Life is too short for that.
It is a bad thing, because the "most confident" and the "most skilled" are almost never the same.
Confidence (or as I look at it, social pain threshold) is unrelated to skill.
Maybe because there is not much to learn from people who cannot give you feedback about your patch without calling you an idiot, or making sure that they show that they are above your level.
Because in toxic projects, they are not about teaching you something. And because the only thing you learn is to never contribute to a toxic project again.
Also, why don't you try to create a github account, where you disguising yourself anything but a white guy, and start to contribute. Or just ask any female developer about their experiences.
>You submitting patches has nothing to do with the community.
If you seriously believe this is true, you have no idea about software development.
The tech community has pivoted hard to an obsession with the superficial in recent years. I'm not gonna do 10 iterations of catering to someone's personal tastes in order to do them a favor. They can take it or leave it.
I like quite a lot the approach taken at my $dayjob: the files that you change must not change if one uses ‘indent’ twice on them (twice because some of indent’s opinions are bistable). And there is a script that brings the non compliant files to compliant state.
So I don’t have to think of whitespacing at all while coding and can make “good” before submitting. And, even if I don’t like that particular style of whitespacing, I do admit the code which is uniformly whitespaced is easier to read and maintain.
1) spares everyone a whole bunch of bike-shedding and bickering
2) often teaches me how to better format my code
3) speeds up my work slightly because quite often I can just messily write my code and rely on the formatter to fix it.
"If you don't have a separate documentation website for your open-source project, it's not worth my time."
This is as superficial as it gets.
The benefit of not dealing with upstream is that I can get more done that they do care about.
I also got burned in a case where I was added to a project as a maintainer and then the original maintainer disappeared, 10 years later I am still getting support requests on a project I just submitted bug fixes for.
If a forked repo solves a problem and keeps it Open Source and available, and their solution genuinely is good and useful for the community, then there's nothing to prevent the original repo from pulling their code and reformatting it or adding tests. Upstream maintainers are totally free to go downstream looking for patches. They don't need to ask anyone's permission or convince somebody else to make a pull request. Just copy the code upstream if you care about it.
I've done this in the past with public projects -- fixed a problem, left a quick note on the original repo saying, "hey, I have solution but it's just for me. You're welcome to adapt it if you think it's worthwhile." I've also done the opposite and worked really hard to get something accepted. I've also walked the middle line, where I coordinated with upstream to contribute to an official API, but at the same time made it clear that my downstream fork was going to diverge and stay specific to my use-case.
It's nice for patches to get merged back upstream, and it's nice for patch writers to put in the effort to do so, but part of the point of Open Source is you don't need to wait for that to happen.
I have no qualms whatsoever about maintaining a personal fork of someone else's software. If I'm patching something to solve one of my problems, I'm going to search for a solution that solves it as specifically and narrowly as possible. I'm not going to worry about what your coding style is or what you'd like the API to look like. Then once my problem is solved, if I have time, I'll think about broadening it or altering it to fit with the overall community.
But that's a separate step that doesn't have to be specifically my chore. Anybody can do it.
Both you as the submitter who doesn't want to deal with the comments, and the person who is complaining back (and to be sensitive myself, I try to remember they may not be conscious of it) are both dealing with that.
For example, think about your job, and how often did you just let things go because you had to 'pick your battles' or even 'just too tired to deal with that'. Bosses do it too. This is human nature.
It is, as you say, a people problem.
In some cases someone arrives and implements a smarter, shorter and more easy to read solution to the problem you addressed that is superior in every way. Puts you down for a moment, but in normal cases there isn't any snark involved at all. I hope it also happens the other way around from time to time. But in general I wouldn't say people are vindictive. It is the internet and the slapfight is forgotten 1.5 minutes after it happened.
Maybe it has something to do with how popular a project is and how often certain question are asked.
The other side isn't always true vindictiveness, just wise-ass level garbage.
Anyway it's turned me off more than a couple of projects, forums and sub-reddits. You get that 1 dude that you see again and again posting newbie put-downs. They are usually not the lead of the project, but certainly a lieutenant-type. Maybe with "mod" privs. A lot of the time the regulars are sycophantic towards this person, to get on their good side I suppose, maybe to see if they too get some recognition or power. It's rather sad to see, but what else can they do? Walk away I guess. And as a lurker it's what I do when I see it.
Also, maybe I read too much into the text. It could just be that text is a really bad media for niceness, and something that would be said out-loud in a different tone comes across as jerky in text.
This isn't limited to "open source". It is probably just a people problem.
It's a people problem. In the 70's and 80's, these would've been the kids that would taunt you or worse in the hallways, gym showers and locker rooms. Not literally, exactly. It wouldn't necessarily have been the same people. However, human nature includes a certain degree of aggression and "us vs. them" groupthink. It's only a question of how it gets expressed. We know that such forces can be negative. We also know that such impulses can be channeled for positive ends.
A couple of decades ago, it was really bad. I'd keep email addresses and pseudonyms separate for the various projects I was involved in, if only to contribute and not impact my life.
To this day, when I push something, I release it as MIT for this reason. Anything I put out there is free for you to scratch your itch, the same way I scratched mine. There's no need to share it back, or file an issue - maintain your own. That way, there's no need to worry about goals or personalities clashing.
Please just post it. Ignore comments. Your fix will most likely prompt them to write their own fix for the same thing in the following weeks or months. They may not even mention you or use your single line of code in their branch but it's you that gave them ideas and belief that problem can be fixed.
If you want to get things done on the internet then post your almost right solution and look at all the people that rush to correct you.
I'm most annoyed by answers "you shouldn't want to do that" from shallow experts. I can bare "you shouldn't want that, that's a horrible idea because ..., but if you must you could do it like that:" from deep experts.
I can bare the tone if the response contains actual information, but not if it's just the tone.
My understanding is that those kinds of "people problems" are exactly what CoCs are attempting to tackle. (Or at least that's one motivation)
Every community that I've ever witnessed gets toxic at some point. As in-groups grow more insular and people become more involved, they get more toxic. But the solution to this phenomenon doesn't have to be black & white. I have always stayed on the margins of communities, and still dip my toes in the water occasionally to get something done. But do I need to keep private forks of patches to avoid messy interactions? Nope.
It's pretty easy to fire off a pull request or patch set and then forget about it. I'm not investing great deals of effort or emotion. I'm just sharing my crap. If they merge it, fine, if they don't, fine. But I'm certainly not keeping super secret private repos for just the cool kids to use. That would be even more involved than what little I am already.
OpenBSD has the proper motto for this: "Shut up and hack". If more oss devs followed the motto then they would be happier as a whole.
My interaction with them is limited to the functionality of the code that I have written and the bare minimum effort needed to let them know of its existence. Anything more is a waste of my time - I have things to build.
You don't operate in a vacuum when you work on projects. What if you think someone is wrong? Being direct might be a risk, because then the community might not be seen as "welcoming to newcomers" anymore.
I mean, ideas don't come out of nowhere for projects, and people who care about things, will be passionate about them. What if someone comes in the way of you building things? What then?
OP Is exactly describing working in a vacuum. They've got no ego invested in the project and whoever does can decide if they want to use their modifications.
>What if someone comes in the way of you building things? What then?
I don't think you're describing someone getting in the way of you building something. It seems more like, "What if you don't feel validated, by some community, after you built something?" Which is something leadership of any project might choose to evaluate. Does the project benefit more by trying to provide validation to everyone who makes an attempt to contribute or not?
In my experience, providing validation for anyone other than children is an enormous waste of time. Especially when building something.
Now the maintainer has to explain what's wrong to a contributor who isn't going to do anything about it. And then explain again and again to everyone else who wants that feature that no, it needs work and can't be merged yet.
(Yes, I am that maintainer with dozens of open PRs on his repo, none so bad they must be closed, but also not good enough to merge.)
Go ahead and close them with notes that they can be re-opened if they come up to standards, but that you don't have the time or interest or capability to do it yourself, and that you are not judging them beyond this comment.
Closing a PR doesn't mean as much as people kinda think it does; they can be re-opened. Closing them without comment is harsh, but it correctly represents the current state of the world, which is that without changes, they aren't going in. Closing them with comment is the best compromise between all the issues.
As a maintainer, you need the "open PR" list to be a list of meaningful, actionable items. You don't have all that many tools to use, and the ones you do have need to be kept sharp. It's OK.
If people keep asking for a feature that isn't ready, you can make an issue that depends on the PR that describes the acceptance criteria for the feature, and send them the link. Or you can edit the top of the PR description with the acceptance criteria/status so new people see it immediately.
A third option is to refuse issues and PRs entirely and just use mailing lists. Less people will ask for a feature because it takes a lot more work to dig through mailing lists, and by that time you've already found the thread and know why it isn't accepted yet.
If GitHub automatically saved a copy of each PR branch, I would be more receptive to this advice. This would potentially cause a lot of other problems...
On one hand, if the maintainer asks the contributor to fix up their code, the maintainer can be seen us ungrateful, demanding, dictatorial, and/or pedantic.
On the other hand, if the maintainer makes the changes herself, they can seem impatient, uncooperative, overpowering, and/or power-hungry.
Regardless where on the above spectrum the maintainers behavior falls, they can come across as friendly, neutral, pessimistic, or toxic. That depends on how they communicate. It also depends on the social norms that the maintainer and contributor are used to.
A maintainer must be extremely vigilant and aware of the tone they use and the image they want to portray. The contributor should also be aware of these things. If either side wavers, opportunities for an unhealthy brew arise.
This is compounded by the fact that most people, maintainers and contributors, are doing the work on a volunteer basis. Often there is an unspoken expectations that others should be grateful for the work that they are doing. When these expectations are not met, sour feelings arise.
Given how difficult this is, it's no surprise to me that potential contributors might not want to stick their neck out, as expressed in TFA.
Quite a few PRs were improved and merged this way, and I think the feeling of community is enhanced when a PR goes through multiple revisions by multiple contributors.
But you've decided to reject them. Isn't that just what 'closed' is for?
If it were something really stupid or wrong, I'd close it, sure.
So, you and/or others might benefit from them taking your contributions. You and/or others might still benefit when they don't. You can't control what they do anyway. So, might as well set it up so you and others can benefit either way.
I wrote something in the early '90s, entirely for my own use. I thought others might find it useful, so tossed it up on my public FTP space at school, added a notice saying it was public domain, posted a single message to the appropriate Usenet group saying it was available in case anyone might find it useful, but that since it fully satisfied my needs I was not going to do any further work on it nor was I interested in any enhancements, and stopped reading that Usenet group.
I few years later I noticed Red Hat included a package with the same name ("suck"). Curious, I looked to see what it did--and found it was a descendant of mine! Someone looking for something like it found mine, which did a good chunk of what they were looking for, added the parts missing for their needs, and had been maintaining and distributing it.
(And I just checked...it's still in some Linux distros! It's in Debian 9, package name "suck". Too bad I've long since lost my original code. It would be interesting to see if anything of mine has survived in it).
Not anywhere near the same scale as proliferating throughout the linux package managers, but in my early teens I played an online text RPG and ended up writing a fairly large amount of code on top for playing / navigating / fighting etc. When my hobbies shifted away I shared it around and promptly forgot it.
I checked in briefly about 10 years later and was happy to find a lot of my stuff still floating around and being maintained/extended in various forms.
Fixing toxic communities is work. While it would be a public service for the author to do so, she is under no obligation and probably has a day job and a life that take priority.
I praise community-builders and community-shapers and code-sharers and code-reviewers to the heavens, but I'm not going to knock someone who just can't be bothered to do all of that.
(I did something like that with a half-done binutils patch once. It wasn't committed, and I didn't expect it to be. But I was happier having put it out there, so somebody looking for weirdo-TI-COFF-format support maybe had a place to start.)
In a similar vein, I recently learned about prefixing a pull request on Github/Gitlab with "[WIP]", or a "work in progress", to suggest that the proposed changes are for informational purposes or not yet complete.
WIP is really used, and we even have documentation about it https://docs.gitlab.com/ee/user/project/merge_requests/work_...
It's true and they're now mostly dead. Either gone completely or in a zombiefied state.
This is the fate of virtually all closed communities. Yes, you avoid many problems, it's tempting, but you die in the end. Usually, quickly.
Open communities suffer from many problems, and employ a variety of not-terribly-pleasant solutions like dictatorships to deal with those problems. Yes, many can be described as "toxic."
But they're also alive.
And I've seen some of these private trees. The quality tends to be rather underwhelming. As you would expect from someone tinkering at the margins without cooperation from the main drivers of the project.
The "private" being discussed are much more exclusive.
It may be caused more by competition from Spotifies and Netflixes than their closedness (although I don't agree) but they're certainly not alive and kicking.
If it was $20 per DVD like in the past, the pain of torrenting was far less than the pain of the cost of buying your favorite movies.
I really think it's that simple. This value equation alone means that a majority of people won't care enough to go the extra length to participate in torrent communities. They'll just pay a small $10 a month to watch whatever they want, whenever they want, on any device, anywhere. That'll kill the incentive right from the start.
Unfortunately this doesnt exist. I would gladly pay it. Netflix isnt it either, no matter how much they pretend they have all the content, the movies which I am interested in, I have to torrent, because they simply arent on netflix. Their library is so bad that my first instinct is "oh lets look for a torrent" instead of "lets check netflix if it has it" when I want to watch a movie.
- They mostly host newer movies and series. If you want something older, tough luck.
- Ads for other shows. Annoying. I can go to the recommended section if I want to. They should be opt-in, not opt-out. Not to mention the clunky UX to turn them off (and I am pretty sure that's by design so less people opt out).
- Flaky connection sometimes -- and I have a gigabit link at home. Yes the internet is a complex graph and it might not be their fault, I know. That's fair but it's not my fault as well. And when I pay money I feel entitled to good service. The tech details are their problem, not mine.
Torr3nting is very often not done just because somebody is a scumbag and wants to see Brad Pitt go broke. T0rrenting many times is done because (a) you get the entire content and can later watch it anytime you wish, including repeteadly, without lags, buffering or quality drops, (b) because it gives you the option to watch offline when you are off the grid -- like I download gaming tournaments from Twitch and put them on my tablet, and (c) the paid services are not good enough.
Also wondering what you think of the idea that what.cd may have been too big for a private tracker to exist sustainably?
I'd guess most discussion in such places is probably meta. tech support, or non-tech support.
This is the fate of virtually all closed communities.
You will have to do better than that.
Torr3nt sites are pursued relentlessly by authorities and are aggressively closed in what people would call censorship just a short 10 years ago.
I know a few t0rr3nt sites in my country with semi-closed and small backbone communities and they are VERY functional and very lively.
I make serious efforts to create an inclusive environment for my projects because that is what Open Source software is all about IMO. Any contribution deserves respect, it's a gift to the project. Maybe the PR needs some work, maybe it's total crap - but it's a gift either way and that should be respected.
It makes me sad to think people feel the need to maintain private repos just to avoid potential conflict with project maintainers because of toxic environments - but I understand that is a reality. I would like to counter that with the fact that not all projects are run that way, and some are very willing to accept contributions.
So you get sad for me because I am tired, burned out and want to get stuff done without the inevitable drama so many people feel they have to inject in everything?
Thank you for being sympathetic. ;)
This was half-sarcastic / half-serious.
On a totally serious note, you cannot at all blame anyone for wanting less -- or zero -- emotional baggage added to what should be a professional exchange of code and conversation points. I seriously cannot and will not care if somebody has a shitty life and spouts poison at me because I try to be helpful and they have nobody else to vent at the moment. I refuse to participate in a free therapy / rage unloading session with them.
As we get wiser, we start to get economical with our energy expenditures. Even more conservatively so with emotional expenditures. That one can feel like total crap after even one hour of drama is a harsh reality -- and the fact that many of us choose to avoid ruining our day is absolutely our right.
Nothing for you to feel sad about.
It does seem like this is just part of some wider trend though. It's not just the software world, public communities in general seem to be destabilizing and radicalizing.
I don't think this is staying out of the community. It's staying out of a community by forming another community, complete with its own set of good/bad people, rules, and expectations. Indeed, this is how many popular communities began - small, insular, quiet, before growing larger as human constructions frequently do.
The author clearly expressed their lack of desire to deal with drama or toxicity. What makes you think they will tolerate it in another community?
I put them on GitHub and turn off the issue tracker and PR notifications. If others want to fork, fine. If others want to discuss on PRs, fine. I don't care. I'm not fixing it. I avoid the toxicity by not partaking, not hurting my own career.
You can turn of GitHub notifications without turning off the collaboration features. Thus, while the collaboration features work, I simply don't collaborate. Easy peasy. If others want to, fine; I could care less. Just don't break my license.
This is a legitimate question, and I have an answer, but I don't think many people are going to like it.
My response to this is to say "wow, look at how screwed up these communities are", and then tag on "just like I always suspected", and then finally I add "and that reinforces my decision to stay out of them".
Makes me wonder why her writing does so well here.
Yeah, that was funny to think about. I've only seen so many articles. Her write-ups were mostly technical dodging politics a lot. The back and forth, downvote mobs, or whatever kick in with politics on certain topics or views due to community's biases. If she stays away from that, then she can still be really popular.
Whereas, she just now admitted something that could be in the red zone for some portion of HN community in terms of benefiting, but not sharing, in FOSS. It's simultaneously a response that's understandable or folks might sympathize with for the portion that is concerned about toxic behavior in general FOSS and/or toward minority members in particular. Still a grey area in potential reaction here.
I find it fascinating to watch how these things play out. Regardless, her posts about spotting problems, solving them, and keeping them from recurring were pretty awesome. Most of us will probably still respect her regardless of how much she's embracing or dodging online communities.
The only other post of hers I recall reading boiled down to her refusing to fix a thing at work that it was her responsibility to fix and wouldn't have taken very long, like a few minutes, and leaving it that way for six months, calling it "an experiment" to see if anyone else would fix it and then talking trash about everyone else at work when her boss finally told her to fix it already. It struck me as very unprofessional, childish and toxic.
She is the only woman that I'm aware of who blogs about programming. I'm not a programmer, so that might just be my ignorance showing. But my guess is that's the primary reason her writing shows up here so often, because it doesn't strike me as great writing overall and her attitude seems to be pretty toxic generally while she blames that on everyone else.
She could make a lot of the same points she makes without pissing all over everyone in the process. She could very reasonably say "I'm a woman in tech, so I deal with brogrammers 40+ hours a week and I have no patience left to do more of that in my off hours." She could say "Eh, different strokes for different folks. I share my stuff with people I enjoy talking with and I'm okay with that meaning it isn't out there in the ether for the whole world to access. We can't all be Linux."
She could make all the same choices she is currently making and describe them in her blog without gratuitously pissing all over a community that very likely accounts for a large share, perhaps even the vast majority, of her blog traffic.
While I cannot speak to your awareness, I can say for a fact that there are many women who blog about programming.
Maybe programming blogs aren't that interesting to you so you don't have much exposure to them? I'm struggling to understand how you would not be aware that there are more such blogs beyond Rachel's.
If there are many more women who actually blog about programming per se, rather than blogging about the problem of being a woman in tech, then I am even more mystified as to why her writing seems to be so popular here.
I will add that it is and should be ok to write your thoughts about communities and processes and culture and pop tech etc even if you don't write technically technical articles. Such blogs are pretty normal in programming communities. These things actually matter for those who deal with those communities daily. Moreover, Linux community prides itself on being tough and not caring and pissed off all the time on each other, so really, demanding that whover is commenting on it is nice to them and not pissed them off is odd. As far as linux community standards go, this article is remarkably nice - the only way to make it less nice is to keep opinions for yourself.
There is a thing that happens a lot where people nominally argue for free speech in a manner that suggests that asking X question or saying X thing should not be allowed. If one genuinely believes in free speech, then that doesn't work.
As best I can tell, it seems to frequently be rooted in an assumption that asking such questions is really some passive-aggressive agenda to prevent someone else from expressing themselves.
I happen to have a deep and longstanding interest in social phenomenon. I find it fascinating to puzzle out the details of why X flies when it seems like it shouldn't, but Y doesn't when it seems like it should. This is frequently interpreted as nefarious behavior with some preconceived agenda. It really isn't, anymore than wondering at some edge case programming bug is inherently nefarious.
You, on the other hand, appear to be trying to police my behavior, though you aren't a moderator on the forum.
Just reword it as an article with the headline "Don't Be a Hero". Suddenly it's valuable career advice.
I admit, I'm in this camp where my gut reaction is fairly negative. Truthfully, I'm trying to sit on this info a bit and come to terms with how I feel with it (with respect to a personal strategy), because my reaction was pretty visceral. I mean, it's okay, it's not disallowed by most licenses, but if I wanted could I do this and feel okay about it?
There's a wide spectrum between doing work and fighting to get it included and doing work and actively keeping it limited to a few individuals. At a minimum, just throwing what you have out to the public and saying "here, do what you may with this, it worked for me but I wash my hands of it if you want help" seems a sane middle ground to explore.
Her post isn't about keeping a private repo or being selfish. It's about "I am not your therapist or punching bag, nor is it my job to educate you, so why would I waste my time submitting my patch and dealing with a toxic community? What am I supposed to gain from that interaction, other than being insulted, belittled, and having my patches ignored?"
She is hardly the only person who stays far away from contributing to the Linux kernel (and other projects) thanks to certain nasty and emotional segments of "community". Those people don't show up in stats. No one knows they exist. The project just has a reputation for being full of assholes, so many really talented people choose to stay away (or strictly limit their involvement). This can become a self-reinforcing cycle where only assholes can be heard, resulting in design-by-asshole rather than design based on technical merit. Assholes (by virtue of being assholes) usually immediately dismiss this by claiming anyone making such complaints is technically inferior (or is intrinsically unsuited to contributing because of their age, gender, or other attribute).
I'll also point out that acting out like this is purely emotional knee-jerk behavior - the exact opposite of merit or technical arguments. Linus is perfectly capable of criticizing patches on technical merits without calling people morons in the process. In the past he has chosen to lash out emotionally for one reason or another. Perhaps he had a bad day. Perhaps he just enjoyed insulting other people. Perhaps he thought he was better than them and wanted to show off how superior he was. None of us can really know the underlying reason, but at the end of the day it hardly matters.
I really want to stress my last point: lots of people (including here on HN) are trying to make a self-evidently Orwellian case that adopting a CoC and setting community standards is somehow trading technical merit for soothing people's feelings... in defense of another contributor's ability to lash out emotionally. One has to engage in some especially motivated reasoning to make such prima-facia false claims.
A code-of-conduct basically boils down to "don't attack people personally and don't belittle, harass or intimidate other contributors". Or perhaps in simpler terms: "act like a professional".
Being professional means giving direct and honest feedback. Lying to avoid hurt feelings is the opposite of professional!
I am surprised by the thought that I might be one of those people. On paper, I seem like exactly the sort of person who ought to feel confident getting involved in Linux kernel development. I have decades of programming experience, I've been using Linux since the '90s, and I've spent most of my career building system software and developer tools. I've written drivers, filesystems, memory managers, embedded RTOS kernels, compilers, linkers, debuggers, VMs, runtime libraries, you name it. I've grepped through the Linux kernel source plenty of times. I am a thoroughgoing free software advocate and I've been GPLing all my personal projects for many years; in fact I am currently fortunate enough to be making my living developing free software.
And yet - it has never once occurred to me that I should get involved in the Linux kernel project. A friend actually suggested it last week, and my reaction was an instant, wordless sense of deflation - uffff, wow, "no way." Why? I didn't really investigate the feeling at the time, but it occurs to me now that I simply don't want to deal with a lot of hostile, critical "are you good enough" attitude, and that's what I expect I would get if I went and bothered those people.
Who knows what might have happened in an alternate universe where the kernel community were more welcoming; perhaps there would have been other reasons not to participate - but it's easy for me to believe that you're right, and there are lots of people who might have something to offer who are just quietly getting on with their lives and not even considering it.
How does a code of conduct and a hiatus for the guy who was cursing at people reinforce the decision to stay away? The only way that makes sense is if she weren't previously aware of any of the documented cases of Linus' abusive behavior, and that seems quite unlikely given she was already using her own "shadow ecosystem" years ago.
I can't speak for the author, so I can't explain that to you.
What I can tell you is that virtue signaling is vastly more common than people actually doing the right thing and nasty behavior frequently gets a great deal worse during periods when people are very visibly and openly trying to publicly address the problem in some manner.
My observation is that a common outcome is the metaphorical guillotines come out, people on their high horses behead all the bad guys, pronounce themselves to now be the good guys in charge and then business as usual follows.
So, for example, if the issue is sexism, terrible evil asshole sexist pigs take the fall to be promptly replaced by more men, not a mixed gender group of leaders, and you hear a lot of smack talk about more women being in the pipeline and someday this will result in gender parity while nothing really changes. But you should be nice to the new men in charge since they beheaded the bad guys and, clearly, in twenty years this will pay off for women.
If the issue is racism, well, clearly, racist white supremacist assholes get removed and are promptly replaced by new white people who will obviously treat people of color better -- someday, but probably not today, but you should believe they are the good guys. After all, they were so kind as to behead your enemies.
If you are part of an "oppressed" group, you eventually get burned out on watching all the white guys fight over which white guys are less evil while no one actually does much of anything to genuinely include women, people of color, etc. And you don't really care to get in the middle of this mess knowing that none of these people actually has your best interest at heart and every last one of them will be happy to trample you underfoot in service of convincing virtue signaling.
Some of the most vicious fights are the ones about how to be respectful and well-mannered. Those frequently get ugly real, real fast and only go down hill from there.
You absolutely nailed it right here IMO.
Codes of conduct nowadays I feel are hijacked and reshaped into the vendetta persecutions you described.
Could Linus be nicer? Everybody keeps talking about that. I almost never see anyone assume that he tried being nicer but the only way he could get through to people was to draw their attention with being rude.
Hopefully, Linus will figure out a better path forward and start setting a better example. If he does that, I think that will make more of a difference than a CoC.
Not everyone views having a CoC as a good thing. If they did, this whole set of drama wouldn't be a thing in the first place...
I did not read it that way. I read it more of calling out both sides as being toxic. And I do not think she was speaking specifically about Linux, but the whole dialogue these days about codes of conduct. She's indicting both the pro and anti crowds.
But in reality, all of us (including me) are projecting. She simply doesn't spell out what she's talking about.
when I could be wasting that time writing blog posts for venting resentment towards communities I don't want to be a part of in the first place?
There are plenty of projects whose communities don't gel with me. The solution is not to participate, not poo-poo them online, explaining how everything would be better if they just did it your way.
>This can become a self-reinforcing cycle where only assholes can be heard, resulting in design-by-asshole rather than design based on technical merit. Assholes
Why are you labeling everyone who doesn't want to deal with you on your specific terms?
> "don't attack people personally and don't belittle, harass or intimidate other contributors". Or perhaps in simpler terms: "act like a professional".
Those are not "simpler terms". One is a basic guideline, the other sounds like "Everybody should act like the corporate environment I'm used to working in".
>There are plenty of projects whose communities don't gel with me. The solution is not to participate, not poo-poo them online, explaining how everything would be better if they just did it your way.
I honestly don't see how your posting this comment on HN is any different from her posting it on her blog.
You do gain from the recognition though. Your code can steer the project's future and set new standards for example. It gives you active influence, which is power, and recognition as a bonus course. That might explain why a lot of people do put up with shit.
A lot of people seem to think that having a large "open source resume" is a large component of success in getting software jobs, but that really isn't the case.
Then i don't get what the article is about. "I don't care for what i don't want" is a passive aggressive drivel.
A small and healthy community doesn't even need a code of conduct, but in the long run any large community needs by-laws and governance, and that includes rules for punishing toxic participants.
The world is full of at least 10% of people that are just stupid and awful. We should work to keep taking out the trash but we shouldn't turn away from the entire community.
If you choose not to share your own work because someone might say mean things I'm disappointed but if you keep private forks of public open source software I feel like your cheating the system that benefits you.
If that tiny minority are in charge of or prominent in projects you're thinking about contributing to, then that's all that really matters, no?
I hope people consider the potential of playing the long game when engaging with a community. Yes there are assholes in the world but they frequently move on to other pursuits, or just die, and after they are gone it's just amazing how excited people are to get things done.
^ I believe that's the premise of the article.
I mean she is WELCOME to keep her contributions to private repos shared only among trusted friends if that's how she wants to work. But it's not for me. I want the work that I do to be shared as widely as possible. (I would share more widely if my employer permitted it.) That is why I choose permissive licenses, and make an effort to contribute patches back to the original source.
Yes, sometimes the communities are toxic. When I see that I speak up. Yes, sometimes my code contributions are used by people I don't much like or used for purposes I don't support. But far MORE often they are used by people I don't know, who I would certainly find to be perfectly nice folks if I ever DID meet them, but individual connections don't scale.
So Rachel is welcome to her insular community -- but I'm going to stick to the open one. I'd rather fix the flaws it has than hope to get a better one by foregoing the openness.
That's a lot of work to fix a project for almost no benefit to yourself.
Life is too short to deal with [people who aren't nice].
This has crossed my mind before, I think it might be the only way to actually meaningfully stop rapid expansion/dilution of culture, which I think is roughly equivalent to what people mean when they say things get "toxic" or the community worsens (it's a bit of a stretch but you can rephrase toxic behavior as behavior that is not regarded as productive/acceptable by the original or some other culture).
Does anyone have any examples like this? An invite-only network that penalizes bad actors by revoking their membership along with everyone else they've invited?
This isn't to say that people in e.g. the open source software community don't behave badly. They absolutely do behave badly. But rather than just labeling someone toxic and assuming that everyone agrees and shares your definition of "toxic" - I feel that everyone's interests would be better served by actually describing 1) what exactly the problematic behavior is, 2) why it is bad, and 3) how to behave better.
TL;DR I find usage of the word "toxic" to be toxic. :)
That's how your comment came across to me.
As for my motivations - my comment was actually more inspired by the comments here than the original article (61 occurrences of the word toxic at the time I write this). Are you now going to suggest that my intent is to undermine everyone who used the word toxic here and replace their opinions with my own? Or are you willing to accept my plea to stop referring to people as toxic at face value?
I am more curious why do you dislike the word "toxic" being used to describe people?
My response was to wonder why there were so many grudges? The CoC is for certain acting like gasoline on a fire, but I don’t believe it was the spark.
Glad I never really bothered to try interacting with that community in the first place.
That could certainly be evidence that FLOSS projects need to do a better job of mentoring newcomers, and of combating abusive and anti-social behavior on their lists and issue trackers. That people are squirreled away on "shadow ecosystems" in sizable numbers would be a sign that FLOSS projects are failing at those tasks.
But it is not evidence that the artifacts these shadow ecosystems are producing have much value. If there are indeed a sizable number of participants there would be an example of a fork that releases binaries/tarballs of significantly higher quality than the original project.
Does anyone have such an example?
* tarball/binary available for fork
* fork is significantly improved over the original project
* FLOSS dev community for fork is invite only
But to be clear, this is the normal, daily-basis operation in the name of distro packaging, too. Some distros (Slackware, e.g.) try to hew as close to upstream as possible, but others (Red Hat and Debian, e.g.) significantly modify the upstream code, and development of this private not-a-fork-just-a-set-of-massive-patches is absolutely invite-only. There are weird rituals around not calling a given distro's effective forking "a fork," but in essence that's exactly what it is. "We can't get this patch accepted upstream," they'll say, and then the fork is live. It leads to heated and sometimes inimical clashes between the upstream dev and the packaging entity (c.f. xscreensaver, firefox/iceweasel, etc).
The only difference between some of these "packaging efforts" and the article's "shadow ecosystem" is how many users they have, really.
Sorry, I left out the bullet about development being done in a private, invite-only group. That's what I'm curious about, and I don't think there are any examples of that.
That's not to say there aren't very public forks of important projects: they happen all the time. (just a few: Emacs/XEmacs, GCC/EGCS, FFmpeg/Libav, Cyanogenmod/LineageOS) If those who did the fork are right, the new project tends to supersede the original. And when there's a fork because one or more of the controlling personalities is an asshole, it tends to be public, noisy and messy. Note: the Linus/lkml thing barely moves the needle on this scale. (i.e. it's public, but there really hasn't been a lot of noise or mess to date.) Also, Linus is a complete gentleman compared to some of the situations I've read about.
I have generally had really great responses when I've sent drive-by tweaks to other FOSS projects, so I feel obliged to pay that forward to others.
lobste.rs works like this too. Tree structures of invites are a great way to prune further up the tree when undesired behavior happens.
(Context: I'm the lobsters admin.)
That's the worst excuse for plastering the internet with low quality 'opinions' like the one above.
What if linux was kept in a private repository to punish those he didn't agree with?
Whose point is this?
It is not the point of the free software movement as seen by the FSF, which calls the APSL 1.x non-free because it requires you to publish changes https://www.gnu.org/philosophy/historical-apsl.html , nor of the (largely similar) free software movement as seen by Debian, which has a "dissident test" that explicitly requires you have the option of keeping changes among your trusted friends (assuming you trust them not to republish, of course) https://people.debian.org/~bap/dfsg-faq.html . It is certainly not the point of the open-source movement nor the Linux Foundation, both of which are firmly supportive of companies making internal improvements and not publishing any of them.
If it is your point, I urge you to reconsider a position that focuses on individuals not publishing code instead of corporations not publishing code.
> The whole point is freedom and sharing code that transcends arbitrary human defined barriers.
I think this is both an admirable view but also a naive one. Code is built, maintained, modified, sold, bought, and used by humans, so at the end of the day code is a human endeavor, and that means you will never escape having to deal with other humans in the process of writing code. You might have more or less pleasant interactions, but (at least before the singularity) code doesn't exist outside the context of human interactions.
I've personally constantly sought ways to spend more time coding and less time dealing with people, but my efforts have only reinforced the bittersweet message that the code I write is both more effective and more useful when I engage with people more. So at some point I just embraced the human element of the craft. But that comes with managing my emotional and social energy, which also means avoiding communities I don't need to be a part of.
Throughout my life I seem to have endless arguments about this. Many people seem to have a binary view of the world (positive/negative), and many others (like me) tend to have more of a ternary view (positive/neutral/negative).
No one is punishing anyone. Not helping is neutral. It is not a punishment.
If I dislike what you do and decide to withdraw support I had been providing, I am not punishing you. I am merely disengaging with you. My position is the same as that of someone who never helped you and continues not to help you.
And of course, as another person has pointed out. When someone gives you something with the explicit permission that you do not have to give back, it is petty to complain when they don't give back.
I don’t want to deal with that...
Naturally it is not a reasonable request when there is no existing testing infrastructure yet.
Other times your conscience might feel cleaner just knowing that you aren't part of a group that does things you don't like, for example: discrimination based on race. Some big projects have partnered with programs like Outreachy, that decide who to help based on the ethnicity, gender, and sexuality of the applicant.
Would you feel comfortable working for a project that openly partners with the KKK to foster adoption of open source in the white supremacist community?. This is an extreme example, but I'm using it for the sake of the argument: Most of us wouldn't want to work for such a project, even though some people might be more malleable than others.
The meta-point is that everybody's wringing their hands over "oh no, I can't say things I want to say and also contribute to Linux", and her point is that this is not new, lots of people have experienced this for a long time.
What a wonderful world that would be.
The toxicity is just a byproduct, and you try to rise above it, but not participating sounds to me to be a dulling activity, not a sharpening one.
This statement gives articles and journalism like this a bad name. It's as misleading as you can get as it gives the impression Python would be the main language for these jobs and nothing could be further from the truth. I'm sure it participates in some way, directly or indirectly, but doesn't perform the main function.
And then we get this:
> Fortran, Lisp and Ada were all highly popular in the 1980s and 1990s
Which may be true for Fortran and maybe even Ada in defense or government but Lisp? I don't think so.