Rewriting Halloween
Halloween is the part that parses a bug-buddy email message and transforms it into an XML message. This message is used by Bugzilla to create the bug.
Current Halloween has a lot of problems:
- Responds to all email messages, including loads of virus and spam messages
- Cannot reliable parse email message if transmitted using a Mail-User-Agent (not directly from bug-buddy), due to:
- Bugreport attached as a file
- PGP/signed mail
- text/html
- Sysnopsis: wrapped on multiple lines
Stats for bug-buddy emails from 5 - 27 March
- Total mail received: 2862
- Spam,virusses: 1984
- Bugreports: 878
- Transmitted by bug-buddy: 817
- Transmitted by another mail program: 61
The rewrite should:
- Not respond to spam/virus emails, using the logic:
- Always respond if X-Mailer was set to bug-buddy
- Never respond to messages having an attachment ending with (vbs|bat|chm|cmd|com|exe|hta|js|jse|pif|scr|shb|vbe|vbs|vbx|wsf|wsh)
Search body for some standard bug-buddy text, like BugBuddy-GnomeVersion, Steps to reproduce the crash. If not found, do not respond
- Determine crashed program and:
- Reject (with a reply message) NOTGNOME bugreports
- Move bugreports to correct component if original component wasn't a library.
General problem:
Shouldn't use email for this usage, but XML-RPC. This is targetted for the Bugzilla upgrade and the next bug-buddy will also use XML-RPC to create the bug. However, we will still want to receive the bugreports from other users. LuisVilla4: sure about that last statement? realistically, how many old stack traces (1) aren't reproduceable in newer versions and (2) still get fixed in a stable release? I'd guess 'very few'. So realistically I think the cost of just dropping old bug-buddy reports is not really that high; if anything, it means we get rid of the constant stream of dups from old versions. [An interesting stat is how many of those 878 March bug-buddy emails weren't dups.] If we wanted to make things cleaner, the email code could just spit out XML-RPC on the other side...
bug_status |
resolution |
count(distinct bugs.bug_id) |
UNCONFIRMED |
|
140 |
NEW |
|
11 |
NEEDINFO |
|
223 |
RESOLVED |
FIXED |
18 |
RESOLVED |
WONTFIX |
2 |
RESOLVED |
DUPLICATE |
402 |
RESOLVED |
NOTABUG |
3 |
RESOLVED |
NOTGNOME |
145 |
RESOLVED |
INCOMPLETE |
52 |
RESOLVED |
INVALID |
9 |
RESOLVED |
OBSOLETE |
10 |
CLOSED |
FIXED |
1 |
No clickable links yet, but I tried to make a query that shows you these bugs.