| gnatsparse |
| ========== |
| |
| Author: Daniel Berlin <dan@dberlin.org> |
| |
| gnatsparse is a simple Python program that imports a GNATS database |
| into a Bugzilla system. It is based on the gnats2bz.pl Perl script |
| but it's a rewrite at the same time. Its parser is based on gnatsweb, |
| which gives a 10 times speed improvement compared to the previous code. |
| |
| Features |
| -------- |
| |
| * Chunks audit trail into separate comments, with the right From's, times, etc. |
| |
| * Handles followup emails that are in the report, with the right From's, times, |
| etc. |
| |
| * Properly handles duplicates, adding the standard bugzilla duplicate message. |
| |
| * Extracts and handles gnatsweb attachments, as well as uuencoded attachments |
| appearing in either followup emails, the how-to-repeat field, etc. Replaces |
| them with a message to look at the attachments list, and adds the standard |
| "Created an attachment" message that bugzilla uses. Handling them includes |
| giving them the right name and mime-type. "attachments" means multiple |
| uuencoded things/gnatsweb attachments are handled properly. |
| |
| * Handles reopened bug reports. |
| |
| * Builds the cc list from the people who have commented on the report, |
| and the reporter. |
| |
| Requirements |
| ------------ |
| |
| It requires python 2.2+, it won't work with 1.5.2 (Linux distributions |
| ship with 2.2+ these days, so that shouldn't be an issue). |
| |
| Documentation |
| ------------- |
| |
| Documentation can be found inside the scripts. The source code is self |
| documenting. |
| |
| Issues for someone trying to use it to convert a gnats install |
| ----------------------------------- |
| |
| 1. We have three custom fields bugzilla doesn't ship with, |
| gcchost, gcctarget, and gccbuild. |
| We removed two bugzilla fields, rep_platform and op_sys. |
| If you use the latter instead of the former, you'll need to |
| update the script to account for this. |
| 2. Because gcc attachments consist of preprocessed source, all attachments |
| inserted into the attachment database are compressed with zlib.compress. |
| This requires associated bugzilla changes to decompress before sending to |
| the browser. |
| Unless you want to make those changes (it's roughly 3 lines), you'll |
| need to remove the zlib.compress call. |
| 3. You will need to come up with your own release to version mapping and |
| install it. |
| 4. Obviously, any extra gnats fields you have added will have to |
| be handled in some manner. |