Arnt Gulbrandsen
Send me mailAbout meAbout this blog
2011-04-22

A sort of bug tracker

All bug trackers suck. That's why Abhijit and I really don't want to use one for aox.

Here's what we do instead. It's subtle.

There's a notes file in the version-controlled source tree. The only way to add to a note (ie. file a bug) is to make us do it. There are some scripts that look at the file.

The notes file and SCM

The notes file is very mildly structured. Basically anything can go in that we want to add. This is an important point: Adding to this, or working with it, requires hardly any effort. Understanding what to add requires mental effort, but the procedure of adding does not. (At the same time there is some structure, enough that reporting scripts can extract useful information from the file.)

There are no required fields to fill in, there's not even any need to change to a different program. The drawback is that it's impossible to append screenshots or other data.

The file is version-controlled along with the files it's about. The regular commands to look at versions and review new changes for the source code apply. The atomic commit that resolves a bug also updates the tracking file.

I suspect that version-controlling it separately wouldn't work as well. I don't have any rational arguments, but intuitively I think that bug-tracking needs to be closely tied to the source code it tracks in order to work well.

Receiving bug reports

There's no way for an end-user to talk to the bug tracker. End users can send mail, and someone such as I must answer the mail and make notes as required.

This is a feature, not a shortcoming. Answering the mail is a chore, but it's not (much) worse than handling user-supplied bugs in typical bug trackers, and the results are better.

Classic bug trackers have a great advantage if most bug reports don't need to be handled by a human, or aren't handled by one. Three examples of many: The program has a feature that users report as a bug. Users report supposed bugs because they didn't find the solution to their problem in the (disorganised) documentation. The developers only fix bugs that are relevant to their own use of the code.

Statistics, reports, notifications, etc.

The notes file is version-controlled, and all decent version control systems are able to run user-provided code when a file is updated.

We use git. git hooks can look at changes to the notes file and do anything, including update a web-accessible list of open bugs, notify people via email or jabber, etc. We don't do any of that, but it's possible.

The structure we use is simple: A single-line headline, one empty line, optional body text indented two spaces or more, magic lines at the end, also indented.

2010-10-05

IMAP, aox, 3G

A little bit of 3G first: A 3G connection is in one of several modes, ranging from PCH (which uses hardly any power and can't transfer payload data) to DCH (which uses much power and is used for bulk transfers).

The way Archiveopteryx handles IMAP, POP and SMTP is very battery-friendly. (more…)

2010-04-26

83% PHP

Github thinks aox is 83% PHP. That is even more of an insult than its previous supposition. 60% C might have been misleading, but that error was understandable (it thought cryptlib was part of aox). 83% PHP is just insulting.

Ohloh also smokes the good stuff: Archiveopteryx is GPL'd, thank you so much.

2010-03-31

Detecting character encodings

Archiveopteryx often needs to massage incoming mail to make it syntactically valid. 99% may be valid, but 1% is still a lot. One of the chores is to guess how a message is encoded — unicode, ISO-8859-x or what? For that Archiveopteryx uses a novel and good algorithm. (more…)

2010-03-26

Comments on the LWN thread

LWN ran an article on Archiveopteryx. Some points.

It's BSD-licensed, not OSL-licensed. It was OSL-licensed until last year.

One commenter opined that we might not have tested big mailboxes. Well, we have. Not sure exactly how big. We've routinely tested up to a million, bigger occasionally. At a million it's quite simple: Most mail readers fall over. (more…)

2010-03-10

From: Charlie Root <root@…> — but which Charlie?

I hate it when different, independent computers all send me mail from my close friend Charlie Root. Here's an aox hack to ease the pain. (more…)

3.1.3 done

Archiveopteryx 3.1.3 is done. Finally the unending series of bugs stopped disturbing the server, and the server started running reliably, and recover from problems the way it's meant to. (more…)

2010-03-05

Oryx RIP

I went to the public notary today (a few months later than intended) and signed the paperwork. (more…)