Another class of requests we often get is “how do I delete this user?” or “how do I delete this bug?”. Jeff has left the company to go and rediscover himself in the high Himalaya, and that humorous “My shirts smell” bug you filed as #1 doesn’t seem quite so funny now the system is used by 3000 people.
Nevertheless, bug or user deletion is a bad thing to do, for much the same reasons as deleting comments – it alters history. Jeff did have an account and said a load of stuff, and no-one is served by having that fact obscured. Particularly not the people who responded to it.
So have a “useless/test bugs” dumping ground. Rename departed users to “Joe Public (gone)”. Change their email addresses to firstname.lastname@example.org if you like. But don’t try and erase all evidence of their existence. Apart from anything else, it’s not nice.
Bugzilla actually does have user-deletion and bug-deletion code, but it’s unmaintained, turned off by default, and there are big warnings next to it saying “Warning!”, (a good start), “This code may corrupt your database, Paypal your bank balance to the RIAA and cause you to run out of toilet paper just before guests arrive.” Or something like that. We even get people who turn it on and then say “Hey! Now sanitycheck.cgi is complaining!” Well, yeah :-)
Of course, it could be argued that we are just being lazy. All of this philosophical talk about “altering history” is just an excuse not to get off our backsides and do the work. Well, it’s true that this is not a major architectural assumption like sequential bug numbers. Proper bug deletion code, which maintained data integrity, could be written. But we haven’t – because (and this is what this series is all about) we don’t write good code to encourage bad practice. If people want to do dumb stuff, they can write the code for it on their own time ;-)