Moving to Gitlab
5/Apr 2016
I’m moving to GitLab! You can now find all my hobby code (i.e. stuff done under the name Rauko) on GitLab: https://gitlab.com/u/rauko1753.HUGOMORE42 I still have my main GitHub account for non-hobby projects, and I still have my old hobby account, but you’ll find that it is barren.
Okay, so this move probably merits some explanation. Let me first be clear that this post should not be viewed as a call for everyone to abandon GitHub in favor of GitLab. This is merely an explaination for why I personally moved some of my code over to GitLab.
On the surface GitLab is basically GitHub for enterprise. It comes complete with git management, code reviews, issue tracking, and so forth. One cool feature not available on GitHub is that GitLab lets you run on your own servers should you desire complete control over your code. Of course GitLab also have free SaaS offerings if you want your stuff in the cloud too. However, for non-paying individual users like myself, GitHub and GitLab have feature sets of the two products are quite comparable. That said, here are some reasons why a free user might consider switching.
- FOSS shouldn’t put all its eggs in one basket
Suppose GitHub suddenly decided to go the route of SourceForge and pull crap like this. Admittedly this scenario is pretty unlikely, but there are scenarios which could conceivably happen. Suppose GitHub changes its pricing model in a bad way, or suppose GitHub gets taken down in a DDoS attack of some sort… Having the entire FOSS community dependant on one code hosting platform seems pretty risky if you ask me. - GitHub is not actually open source
Yup - you read that right, and it feels really strange to say given how GitHub has positioned themselves in the market. GitLab on the other hand is open source, so all the familiar arguments about the advantages of open source actually apply. Admittedly, this probably affects enterprise customers more than individuals, but its still an issue. - Free private repositories
For almost everything, I don’t really care about private repositories at all since I want the code to be easily accessible by anyone who cares. There are a few cases where I need private repositories. For example, my private latex repository is full of unpublished drafts that I intend to eventually publish. GitHub makes you pay for private repositories and collaborators, while GitLab does not. - Sexism and racism seem to be a problem at GitHub
From the outside looking in, GitHub looks like a pretty bad place to work. We’ve had a scandal where allegations of sexism at the highest levels of the company ultimately led to the resignation of it CEO and co-founder. In addition to the sexism, there have been some pretty disturbing reports of racism inside the company. Yes, gender and race gaps in the tech industry are a huge problem which must be addressed, but being racist against white people isn’t counter racism - it is just regular racism. When “it is very hard to even interview people who are ‘white’“, there is a serious problem. To be fair, GitHub seems to be going through a lot of turmoil internally, so it is hard to say exactly what is going on. What I can say though is that I wouldn’t want to work there right now… - GitLab CI is integrated, easy and configurable
Unlike GitHub which requires third-party CI systems, GitLab has CI built right in. You can pretty much setup an arbitrary build process with GitLab. Here is an example config file: gitlab-ci.yml. An immediate consequence of these build files is that GitLab pages are much more configurable than GitHub Pages. GitHub pages are great if you use Jekyll. If you use something else like me (I use Hugo), GitHub is rather annoying. I have to manually run my static website generator and push the generated content up to GitHub. Not only does my repository contain tons of redundancy, its just a hassle to deploy. Due to the way GitLab does CI, GitLab Pages works with any static site generator. Getting my Hugo-based blog up on GitLab was as simple as adding a 5 line yaml file. For me this is a huge win.
In general I believe that most people have two reasons for everything they do: the good reason and the real reason. So which bullet in this list is my real reason for switching to GitLab? Honestly, I don’t know. I guess in this case all of these factors put together have sorta influenced me to want to try something new. Will I be judging you if you decide to stick with GitHub? Of course not - this is not a call to ditch GitHub altogether. In fact most of my ‘real’ work is still on GitHub. Moving my hobby code to GitLab is mostly an experiment to see what else is out there.