Open Source Maintainers Owe You Nothing
mikemcquaid.com
mikemcquaid.com
I don't share that objection to forks; I don't find forks to be a problem. One can't do anything to change in the free software world, nor would I want it to change because changing that would mean losing the software freedom I value.
I am not against the forks, but we also have examples like openwrt/lede split.
My perspective on this is only against splitting contributor base because of maintainer mismanagement.
Edit: in your emacs example, it is much more beneficial your changes (and a lot of others) pushed back to main project vs multiple emacs forks with minor improvements.
I've used lemacs (Lucid emacs) and xemacs, and now I use Aquamacs.
As I recall, Lucid forked emacs because they, a commercial company with an emacs-based IDE, wanted to push changes faster than the FSF, a small non-profit dependent on volunteer labor, could accept them.
This turned into xemacs. My feeling was that xemacs was much better then emacs-for-x.
I think Aquamacs has better Mac integration than stock GNU emacs.
> LucidEmacs forked quite publicly from the FreeSoftwareFoundation’s implementation of Emacs in 1993. This was one of the more notorious code forks in the history of free software, probably because it was early and public.
I'm not sure it was seen as a "disaster", but it was certainly controversial, and negatively by many, so close enough.
I do think for Lucid it was seen as a feature, that is, they could fork and ship to customers.
If the maintainers are assholes and really won't fix the bugs in their product, you can either maintain your fix, maintain your fork (including new feature development and merging in changes from upstream), or switch to commercially-supported software.
Sometimes it takes a lot of work to make free software affordable, don't ya think?
http://www.h-online.com/open/features/GCC-We-make-free-softw...
I mean you can't totally avoid Bash today, and that has a cost to society (because it's so shit) which he at least has some responsibility for.
Of course if he doesn't want to work on it and fix things that is fine. But I don't think he is responsibility-free.
Look at it another way - if I build a dangerous bridge over a river, and someone dies crossing it can I say "well you were free to walk around the river"? Of course I can, but that ignores the fact that I made the bridge available to other people, expecting them to use it and importantly it put other people off making a safe bridge. I am in some way responsible even though I only provided something for free that nobody had to use.
Moreoever, I have made bridges across streams, using stones and logs, which were not safe. And left them there as-is, because there isn't an obligation that these sorts of throw-it-together hiking bridges actually be safe for others. The risk is entirely on the crosser. If you try to cross it, slip, knock your head on a rock, and drown, there is no blame on me. (Plus, it might have been safe when I made it, but the water conditions changed, or if overnight it iced over, etc.)
Look at it another way. If I post a poem on my web site, for people to read for free, and you think it's crap, I don't have an obligation to edit the poem to your liking or even read your criticism.
Do I have an ethical obligation to not post shitty poetry on the world? No! I don't even have the obligation to not be snide to criticism I don't like.
And I believe you are saying that it's unethical for all of those college students in introductory CS classes to host their software - almost all of which are 'shit software' - on a public system like github.
> Step down considerately
> When somebody leaves or disengages from the project, we ask that they do so in a way that minimises disruption to the project. They should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.
I don't think a maintainer owes anybody free labour, but I do think a good maintainer will hand over the keys to someone else when the needs of the community require it.
For maintainers: if you don't want people to act like you promised them anything, don't put up a fancy website showing how wonderful it is and what its best features are.
Instead, do what you can to discourage people from using your software. Tell people how crappy it is, that you could abandon it at any time, and so on.
Making it version 0.15 alpha might not be enough to counteract a marketing message that makes it sound like the greatest thing since mobile phones.
make
make install
( I have no obligation to tell you to which project these commands apply to)
Nonsense. This is what FOSS maintainers crave: someone cares about their project and has a real problem: call to action!
It's the cure for burnout.
> For maintainers: if you’re not enjoying most of your work on a project, don’t do it anymore.
If your regular day job is software developer, and you're not even enjoying your side project, then you're basically burned out from development, which is a bigger problem.
If the FOSS project is in fact a piece of crap that you hate (because, say, you're now 10X the developer compared to when you made important (mis-)decisions in that project that are difficult to undo now), then ... just stop. What's the big deal.
This is the killer one.
If you don't agree with that choice, you are free to clone/fork the project and merge the PR there. No one -- even the author/maintainer -- is stopping you and they have, in fact, granted you the permission to do exactly that (via their choice of an OSS license).
This is core to open source. See gumby's e-mail about this from 1997: https://gcc.gnu.org/news/announcement.html
A nation state could submit a merge request to the Linux kernel that is a blatant backdoor and override maintainers by just shear numbers of 'supporters'? This is a very bad, no, terrible idea.
Code merges should not be an open democracy with no opportunity for oversight.