Why Open Source Software Projects Suck

The short answer is that most open source software projects are run by cliques. Which means if you're not part of the clique, they won't accept your changes. Or at the very least, they'll jerk you around for weeks, asking for changes of questionable value, and then they still might not accept your changes. Because you're not part of the clique.

I'll give you some examples related to an open source Minecraft plugin project.

ACT I

Suppose you find a problem with PluginX and develop a solution and want to submit it as a pull request (PR). So you go and look at their contribution requirements. They say you need to create an issue about the problem. So you go and create the issue.

OK, with the issue created, now you go to create the pull request. Oops, first you have to add ?template=bug-fix.md to the end of the PR URL. Now you see they want a demonstration that the PR fixes the problem, with log files, screenshots, videos, and twenty seven eight-by-ten color glossy photographs with circles and arrows and a paragraph on the back of each one explaining what each one was.

So you fire up your test server, take screenshots or videos of the problem, then put in your modified plugin and take screenshots or videos showing the problem was fixed. Then you use your graphics editing program or video editor to properly format them, and add them to your PR along with the twenty seven eight-by-ten color glossy pictures with circles and arrows and a paragraph on the back of each one.

Finally, you submit your PR. And then you notice that in the time it took you to make the screenshots, videos, and twenty seven eight-by-ten color glossy pictures with circles and arrows and a paragraph on the back of each one, a PluginX developer has already made the change and merged it in to the main branch, so he gets the credit, not you. But guess what? His PR didn't have screenshots, videos, or twenty seven eight-by-ten color glossy pictures with circles and arrows and a paragraph on the back of each one, because he's special. In fact, his PR has no documentation or description at all! ("I don't need to fill out the template because I can understand my own changes.") No wonder he finished it so quickly.

So then your PR with screenshots, videos, and twenty seven eight-by-ten color glossy pictures with the circles and arrows and a paragraph on the back of each one explaining what each one was gets closed. You realize that you went through a whole bunch of work for nothing and wonder why you even bothered to try to help the PluginX project in the first place.

ACT II

So then you decide that a custom modification to PluginX that you've been using for 7 years and your players really like might be of interest to general PluginX users. So you go and create an issue (don't forget the issue, even though PluginX devs don't write them!) and a pull request with the required screenshot.

A PluginX developer says someone submitted this months earlier and you should go and read the discussion of that earlier PR. So you do that, and see there was a discussion about the date/time formatting. You discuss it further in your PR, and the conclusion is that the formatting should use the PluginX locale, not the server's locale. Even though other code added recently by PluginX developers has the format hard-coded.

But you want to include the suggestion, so you go and make the changes to your PR, and push the changes along with a screenshot showing the format changes in five languages, including Russian!

Then there's silence for two weeks. So you ask if there are any additional comments, and they say they don't want to add it. Even though now there have been two people who submitted this change.

So, again, you did a whole bunch of work for nothing.

EPILOG

Four years later, PluginX developers add a different PR to add the same feature, but it doesn't contain the locale changes they had required. So changes they insisted you make are ignored for the most recent PR.

Like I said, open source software projects suck.

Years ago, I had a WordPress site and there was a feature which was totally broken. It didn't work at all. But I developed a fix which would work for 95%+ of the users. They rejected that, because it didn't fix it 100%. So they would rather have a totally broken feature than one that worked for the vast majority. But I continued to use the fix on my site with zero problems.

That's when I realized they wouldn't accept anything from someone who wasn't part of the clique.