~inspirated/arsenal/send-attachments-upstream-ajax

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Simple Stuff
============
 * Reimplement remaining perl scripts into python

 * Add OptionParser to all python scripts, supporting these options:
   --help, --dryrun, --version

 * Look for any xorg-specific or kernel-specific tags, comments, etc.
   and create command line options to allow overriding those.

 * Permit specification of team-specific values in /etc config file

 * Look at how the security team uses genshi for doing templated email,
   and follow similar approach for Arsenal's messaging customizations.

 * Add exception handling to collect-* and process-* scripts
   (see collect-patch-bugs as an example)

 * Set up unittest framework (like done for the 'Getting Things Gnome!'
   aka gtg project)

 * Add docstring documentation for all routines in arsenal_lib.py

 * Set up pydoctor support for generating API docs for arsenal_lib.py

 * Make collect-patch-bugs also include bug reports that the team is
   subscribed to directly (for cases where team is not subscribed to the
   source package the bug is reported against).

 * Search through codebase for "TODO"


Refactoring Work for process-new-bugs.py
========================================
 * Could append_tag() and append_tags() be merged into one routine?  If
   not, then append_tag() should just be a wrapper around append_tags().

 * Be better at detecting workflow bugs ("Please...", "Needs sync...",
   etc.) and not asking for files in these cases.

 * Redo the attachment detection/classification code.

   + Move into Arsenal itself for general use
   + Recognize a wider variety of attachments
   + Recognize and flag patches
   + Differentiate between debdiffs and regular patches
   + Recognize tarballs and compressed files and flag them as such

 * Create an AttachmentParser virtual class, with subclasses that can
   parse specific attachments of interest:
   + dmesg
   + lspci
   + dmidecode
   + Xorg.0.log

 * Symptom tagging.

   + Extract logic from process-tagging.py, which is more polished.
     Move into Arsenal library proper

   + The tags_regex table is X.org-specific.  We need an easy way for
     other teams to provide their own tables.  Maybe load from a config
     file or something.

 * Distro tagging ('lucid', 'kubuntu', etc.) should be a general routine
   in Arsenal itself.  Several scripts are doing this.

 * Message replies.  I am not happy with how this is implemented in
   process-new-bugs.py.  My ideal would be some magic routine which
   could write a customized reply specific to what it sees, so it's
   specific and doesn't sound so canned.  This is what I was shooting
   for with the ArsenalReply class, but that's unfinished.  This needs
   to be heavily re-thought out.

   + Use the identified symptoms to determine if the appropriate
     attachments are present on the bug.  If not, prompt the user to add
     them.

   + Use the identified symptoms to give advice (or wiki pages) with
     info about working around the problem.

   + Identify if bug was reported against a released version and prompt
     use to test the development version (if appropriate).