Re: bug reporting in noncommercial software
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.