Goodbye, Gitorious
Wed, 4 Mar 2015
I've been self-hosted since 1999, and always push that option when talking to people. I didn't always follow my own advice though and made an exception for public source code repos I put on Gitorious. The announcement of Gitorious's demise motivated me to change that policy so that the rug can't be pulled out from under me again. I spent some time reviewing options and wanted to share my own decisions and rationale.
- GitLab.com - The canonical upgrade path provided by GitLab B.V. is moving people from Gitorious to the hosted GitLab.com. I do not like the idea of moving to GitLab.com since that runs their Enterprise Edition which is not free software. Proprietary sofware is never a solution so this option is automatically disqualified.
- GitLab Community Edition - From a purely technical perspective this seems to have some nice features. GitLab B.V. only makes money when people buy the proprietary version though so they're clearly betting on people doing that. They also have a CLA, which I don't like. The lax pushover license used for the GitLab software already allows them to make proprietary versions though. I suspect it's only there so that they can be sure there are no issues with them proprietarizing people's contributions because it seems very big on making sure that they can sublicense the contributions under whatever terms they want. This is backed up by history: The CLA appeared in October 2013 and the license change for the Enterprise Edition was announced in February 2014 (it used to be free software), so the work on the CLA could be seen as preparing for the later license change. I'd like to be able to make contributions to a project without having to agree to such a thing. As a result, while it's free software, using the Community Edition seems like propping up GitLab B.V.'s proprietary software business which I find distasteful. Disqualified.
- Gitorious - It appears that GitLab B.V. will discontinue this so I'd be using abandoned software. That's not appealing to me. Also disqualified.
- Phabricator - Like GitLab B.V.'s Community Edition, this seems to have some nice technical features. It also comes with a CLA, which I don't like. Also disqualified.
- GNU Savannah - I can see that some may complain about the web interface not being HTML5-ified, responsive, or whatever other terms the kids are using these days. On the other hand, Savannah supports multiple version control systems, has issue, patch, and other trackers, mailing lists, website hosting, and more. Also, the GNU Project and FSF are unlikely to be going anywhere anytime soon.
- Kallithea - This seems rather appealing. It's community-developed, doesn't have a CLA, but it's missing some features some may want such as issue tracking. From reading about their future plans in the documentation this is and more is planned though. Seems like it could be a good candidate.
- Fossil - This seems like another good candidate. It has a bug tracker and a wiki in addition to source code hosting.
- Gogs - This seems like a good candidate. There's no CLA and it seems to have all of the features I'd want (namely, an issue tracker.) I've talked to some of the developers on IRC and they seem very responsive and accepting of feedback. Based on my suggestion they now plan to add an option to the web interace for people to export their issues and such so that they can take them with them if they decide to move to another instance.
- GitWeb - Basic, but would do what I need. My repositories are small, don't have lots of contributors (it's really just me) so I don't need bug trackers. I don't even get pull requests, really, having received exactly one. People can send their stuff to me via email, if they have any.
In the end, I've decided to go with GitWeb and letting people do anonymous cloning over HTTP. Someone with different needs (like an issue tracker) might do well with their own Gogs or Fossil instance though. I know of hosted Gogs instances at gogs.io and notabug.org and a hosted Fossil instance at chiselapp.com. Snowdrift.coop has a list of some other options too but whatever it is you should really run your own instance of it. The demise of Gitorious has shown just how easy it is to have the rug pulled out from under you. Do you really want to be in a position where it can happen again? I don't.