Goodbye GitHub, Hello GitLab
So GitHub is reportedly being bought by Microsoft. I already had a few issues with GitHub, such as their reported toxic business culture and the fact the service code itself wasn’t open source when so many others are, so combine this with the fact I don’t like or trust Microsoft, and I finally decided to look at migrating my public repositories off of GitHub onto a separate service.
I already use a personal GitLab instance at home to store my local git repos, and I have some other experience with it. It’s one of the oldest/most mature GitHub work-a-likes out there. I’ve been happy with it overall, and the integrated GitLab-CI is really nice despite YAML being a really bad choice to specify shell code. Also, I never realized the GitLab.com hosted version allows free private repositories by default, which is important if you’re working on research that isn’t ready yet, or classwork you don’t want others to plagiarize. Finally, GitLab has GitLab pages (a GitHub pages work-alike), which I’d like to start taking advantage of. As an added surprise, GitLab.com has GitLab-CI runners available for free(!).
There are other choices. Bitbucket is the next logical alternative, which also offers free private repositories, but I shy away from the Atlassian tools as a personal preference due to bad experiences with early versions of their wiki software at an old company. Gitea seems really nice for a personal or locally-hosted version, but isn’t a feature-rich as GitLab. And I’m looking for a popular hosted version. Finally, all the rest are less mature than GitLab and have less momentum. If it’s good enough for GNOME and Debian, it’s good enough for me.
Still, the same problem remains with GitLab as it did with GitHub. There’s nothing stopping someone from buying out GitLab.com either. Fortunately, unlike GitHub, the source for GitLab itself is open source, so if that happens, someone can simply run their own instance or fork the source and continue development. So I consider the risk somewhat acceptable.
So, starting yesterday, I starting to cull my GitHub Repos down, and import the ones worth keeping into my new GitLab.com Repos. It encouraged me to clean up and update a few things, including adding licenses to a few toy repos and enabling CI. Which is surprisingly effective on ifrac and gspan-glib (extracted to cs691-project repo on GitHub). It also means I should clean up that repo a little bit. At least add error handling to the main arguments.
So overall, I’m happy for the move to GitLab, but I’m a bit concerned about the number of people who will find public repos there as opposed to GitHub. We’ll see how it goes in the future.