Two weeks ago on lwn.net, David Kastrup complained that his users don't submit bugs, and that the failure of free software to keep bugs under control is due to lack of bug reports. This is an area I've been giving thought to lately. I think that a large part of the problem is the great variety of bug reporting and tracking mechanisms in use. If I want to report a bug for some program, I have to hunt down the documentation which describes how to submit a bug, possibly register with a bug reporting database, figure out what version I have of the program and all software that it depends on, and coherently describe the bug. By this time I've spent half an hour of my life reporting a bug that may well have already been reported by somebody else. This doesn't much encourage me to report bugs.
The Debian Project (<URL:http://www.debian.org/>) has inadvertantly found a solution for the problem. They have a bug tracking system for tracking bugs in packages in the Debian distribution - it's at <URL:http://www.debian.org/Bugs/>. The system is primarily for tracking bugs in the packaging of programs (for example, a package that doesn't install man pages properly), but it is also used to track bugs in the actual programs. Every package has a designated package maintainer. When a software bug is reported to a package maintainer, the maintainer is responsible for forwarding the bug on to the package author (or bug tracking system, or mailing list, or what-have-you) and keeping track of its progress. By routing all bug reports through maintainers who decide what action to take, Debian has made it much simpler and more consistent to report a bug. Further, Debian features the excellent "reportbug" utility. Suppose I discover a bug in elvis. All I have to do is type "reportbug" in a shell. I get back a prompt "Enter a package:". I type "elvis". reportbug then queries the Debian bug tracking system for existing bug reports on elvis and displays summaries of all bugs. I can then view the full text of any bug report, and if I find one that matches the bug I'm attempting to report, I can either quit or submit a followup to the existing bug report. If I don't find my bug already listed, reportbug will bring up an editor window in which I can describe the problem. report bug then appends information about the version of the package involved, all packages it depends on, my kernel version, etc. and sends the report on to the Debian bug tracking system. reportbug makes it easy for me to discover if my bug has already been reported. It makes it sure that all bugs get reported with full information on version numbers and the status of the system. I only have to learn to use a single bug reporting tool rather than learning a new tool for every program I encounter a bug in. It's great! It would be wonderful if a system like this could be extended to free software in general, rather than just the Debian distribution. Because there are Debian packages for most free software, there's bug tracking for pretty much any free program I might run into, but the system isn't available for users of other distributions, or non-Linux systems. I'm not sure how one would generalize the Debian bug tracking system to extend to all of free software. One way that comes to mind is to split the Debian bug tracking system into two halves - one half for Debian-specific bugs, and the other half for program bugs. Then package up reportbug for all of the major Linux distributions, as well as for *BSD, Solaris, etc. Encourage the authors of simple packages to use it as their primary bug tracking system; I'm sure there are plenty of projects and programs which currently don't use a bug tracking system out of inertia, but would if there were a simple standard. Of course there are currently political and technical obstacles to splitting the Debian bug tracking system as I propose, but the fundamental infrastructure is there and ready to go. I hope this letter will inspire some thought and perhaps action on the matter. Seth LaForge

