Posted on by Chris Warburton

One of the things I’ve been meaning to do for ages is to set up a decent issue tracker for myself. Whilst I’ve obviously used many issue trackers before (JIRA, Mantis, BugZilla, etc.) most are pretty awful. In particular:

I was quite intrigued by BugsEverywhere a few years ago, but didn’t use it in anger since a) it’s quite complicated and b) it doesn’t seem to be maintained anymore.

I have no problem using old, unmaintained software if it’s simple; since it’s less likely to go wrong, and I’m more likely to be able to fix it. Likewise I’m not totally against complicated software (I use git after all!), but only if it’s maintained; so I don’t have to deal with breakages on my own.

I recently looked into Artemis, and I have to say I’m very impressed. I’ve started using it in anger across my projects.


Artemis works as a plugin to mercurial or git. It stores issues in a .issues hidden directory, which can be version controlled along with everything else in a project.

The nice thing about Artemis is that it’s very simple. It doesn’t define its own version control; it just sits there in a mercurial or git repo along with everything else. It doesn’t define its own formats; it uses maildir to store issues, with threading for replies, etc. It doesn’t provide its own UI; its CLI basically consists of add and list. For actually writing issues, browsing, etc. it defers to any program capable of reading maildir (e.g. mutt).

The nice thing about using existing, widely-used formats like maildir is that it’s easy to take in my own directions. For example, I’m now using MHonArc to provide a Web UI to my issues. MHonArc makes HTML archives of emails, e.g. for mailing lists. The fact that Artemis chose to use a mail format means I can use MHonArc as-is without any faffing around :)