Kallithea
Recently I became aware of Kallithea, an open-source competitor to GitLab, Github and the like.
In other words, it’s a web-based tool to help manage source code repositories.
Out of curiosity, I’ve taken it for a spin over the last few days. Here are my observations.
It has one big differentiator from many of the tools currently out there, namely: it supports Mercurial. In fact, the Mercurial support feels more polished, while Git support appears like more of an afterthought at this stage (v0.3). This is certainly interesting to Mercurial users as the tooling landscape, and generally the support, for Mercurial tends to be a bit lacklustre.
A quick overview
Other than Mercurial support, it has the “usual” list of features:
- Built in HTTP server for Git and Mercurial push/pull support
- Code review functionality
- Pull requests workflow
- Repository browser
- LDAP support
It is, by the way, a fork of the now-commercial Rhodecode.
My impressions
It’s currently version 0.3, and it shows.
While the project looks very promising, and I’m happy to have one more competitor in the SCM space, it still feels incomplete. If the Kallithea team keep releasing new minor versions every half year as seems to be their rhythm, by early 2016 we may have a system that’s reasonably complete for day-to-day use.
The UI design could probably use some polish; sometimes it’s just hard to parse a page and spot the information you are looking for.
Git still feels like an afterthought in many places, like the hook system. I imagine this is how Mercurial users feel most of the time 🙂
The pull request workflow is oddly unfinished. Everything seems to work, except instead of a “merge pull request” button of some kind, Kallithea just shows you a command line which you can paste into your shell.
The associated review workflow is fine, the annotations work as one would expect.
One disappointment was that I was unable to ever clone a remote repository (either Git or Mercurial) from the Kallithea UI. It rejected all URLs I offered as “invalid”, even when they provably worked using hg or git, respectively. I could probably have gotten it to work with enough determination, but this is one of the things I just expect to work.
Interacting with a repository that was created Kallithea worked just fine, though.
Summary
Well, in the end it works just like you can expect from a v0.3. It shows a lot of promise, but on the whole, it’s not quite finished enough yet to unleash it on your unsuspecting users.
The Kallithea team are dogfooding it for their project, which is laudable, and also proves that it’s certainly usable already.
I look forward to seeing what they will come up with, because based on what I’ve seen I have every reason to believe it will be a good product one day. But at this time, it’s still too early for a recommendation.