Artemis
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:
- Many only work in a browser. Browser-based UIs are crap. I should be able to interact from within whatever UI I like, e.g. within Emacs, via scripts, etc.
- Many require a server process to be running. This is pretty crap, and a massive headache for reliability, security, etc.
- Many use a centralised database. Centralisation is stupid when we have machines to handle all of the communication and merging we like.
- Many segregate issue data from everything else. I don’t want to have to keep things in sync manually (issue status, git commits, etc.). Again, we have computers for that.
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
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 :)