Recently there was a discussion about hosting the code related to the Haskell Foundation on GitHub. I’d like to share a short, unrelated story and some thoughts. I don’t know what I want to achieve, probably I just have to give my thoughts some organized form. The whole story is very subjective, don’t take it to heart.
The story is really short: Some weeks ago I moved all my personal, open source projects away from GitHub and removed my organization. I host these projects myself now. This affects my Haskell implementation of GraphQL.
Background
- I was an active GitHub contributor for several years. Mostly I worked on my own projects, though my projects weren’t popular, that is I had only a few contributors.
- I’m self-employed and I’m working on some closed source projects. For many years I’m maintaining a small linux-server. Some years ago I’ve set up a Redmine bug tracker, mostly because of its time tracking capabilities. Recently I also configured a CI for my private projects (GoCD). Now I use the same infrastructure for my open source projects. So I haven’t done the whole setup just to leave GitHub, the infrastructure was there.
- One year ago I would hate myself for this decision. I thought that only stupid people who live in the past, still haven’t moved to GitHub.
At the present time
-
So what is my problem with GitHub? GitHub is mainstream. There were times I thought it is a good thing. My worries are pretty well summarized in the first part of this article: https://sanctum.geek.nz/why-not-github.html:
However, I also dislike the tacit acceptance of GitHub as the dominant free software hosting platform for a decentralised version control protocol, when it is itself centralised, proprietary, for-profit, closed-source, and politically active.
[…]
The issue here is not political correctness, it’s centralisation. If GitHub were not in this monopolistic position, nobody would care so much about any of the above. The overwhelming monopoly that GitHub has as a code host is a problem that the free software community chooses to ignore.So I can’t post something on my private facebook page, because the day will come, someone will read and dislike it, open an issue in my project and ask to ban me from the project, because I don’t have an „open mind“.
-
Then I looked what happend to some people in other grown open source organizations, e.g. R. Stallman and E. Raymond, and it made me so unbelievable sad and angry.
-
Then GitHub announces renaming the „master“ branch to „main“ and I say to myself: enough is enough. Maybe I shouldn’t have written my bachelor thesis on Nietzsche, maybe he made me believe that we aren’t good people, and that renaming slave to worker and blacklist to blocklist isn’t a good action, but in the best case just self-deception. But some GitHub projects are busy with renaming whitelists to whatever it is called now in their documentation. I don’t want to participate in it, I’m out.
-
Some time later the situation around youtube-dl came to my attention and I thought: I’m so happy, I’m not on GitHub anymore.
Further
- GitHub isn’t more convenient or easy to use. Create a fork, close the browser, sync the fork, create a branch, open the browser, create a pull request. Microsoft even wrote their own special CLI tool because GitHub is so unusable.
As ingenieurs we just don’t see anymore what we have to do to achieve a simple goal. We wrote so many overcomplicated, overengineered tools, that we don’t get, how unusable, insecure and buggy they are. We can’t manage the complexity we create and every few years we create even more complexity on top of it, in the hope we can fix the situation. I don’t risk to list a few examples here, I think some people can feel with me and have their own examples. - … oh and this social crap… I used to look every day whether my project has new stars or I got new followers. „Oh, I haven’t contributed today, I should make a commit…“ Why do I even care? I wasted so much time on it.
- I don’t want to create an account everywhere, but nowadays we have OpenID, login with GitHub/Google/Social media.
- Are big, successful companies satisfied with GitHub or are they forced to use it in order to be „nice“ and „community-friendly“? I mean Facebook imports all pull requests to their private Phabricator, Google wrote and uses Gerrit.
But
- I’m continuing to contribute to GitHub projects.
- GitHub is a great platform for projects that don’t have the capacity for self-hosting.
There is no such thing as the open source community, there are open source communities, and free communities are free to choose a hosting solution for their code and communication.