Kwestie (master) :  summary log tree commit diff
path: root/doc/DESIGN blob: fe520a185f7b63db8f67bd58a1cc72dbfd356019
1= Design =
2
3
4== Distributed Issue Tracking ==
5
6The distributed issue tracking of Kwestie is designed such that each Kwestie
7understands that other Kwestie systems exist and issues may need to hop from
8one to the next.
9
10Issues can be pushed upstream and downstream in order to be tracked by the
11correct teams. In the distribution system of Red Hat a Kwestie issue tracking
12system would work best in this kind of configuration.
13
14Check out this ASCII art of the RH system of pulling from upstream and pushing
15to downstream systems. Customers of Fedora (like BU Linux) and RHEL can be
16running their own kwestie system if they are making local changes to the code or
17distribution files. As each customer tracks their changes with Kwestie they
18can forward issues upstream as the issue is realized to be an upstream issue
19instead of an issue in their downstream system.
20 _________ __________
21| | | |
22| GNOME | | Kernel |
23|_________| |__________|
24 \_________/
25 | |
26 | Fedora |
27 |_________|
28 _______/_ \__________
29| | | |
30| RHEL | | BU Linux |
31|_________| |__________|
32
33
34Technologies such as XML representations of issues on every kwestie allow for
35pulling an issue from one kwestie to another. Each Kwestie system is an OpenID
36provider and OpenID account consumer so that a user from a downstream Kwestie
37can push an issue upstream without creating an account on the upstream Kwestie.
38Likewise an upstream kwestie user can push an issue downstream without creating
39an account (via OpenID) at the downstream kwestie.
40
41== Email Interface ==
42
43Kwestie make explicit use of an email interface. The email interface is
44designed to provide the exact same functionality as the web interface.
45
46There is an open email account for every kwestie, defaulted to issue@DOMAIN and
47each issue has it's own individual email address of issue+ISSUE_GUID@DOMAIN.
48
49When an email is received to the open address a new issue is created using the
50subject for a title, the body for the description and all attachments as issue
51attachments. If the person sending issue email to the open address does not
52have an account with the Kwestie an account is initialize for them. An
53initialized account requires activation which is done via email with an
54activation link. A person needs to activate their account before their issues
55become active on the Kwestie system, this is in hopes to prevent spam systems
56from creating issues.
57
58With an activated account the created issue is assigned to the default Track in
59order to be processed by the users of the Kwestie system. The created issue
60now has it's own unique email address. When a person replies to the issue email
61address their reply is inclued as a comment to the issue.
62
63Most people using an issue reporting system for the first time (or even first
64few times) don't understand the complexities of the system and how issues are
65processed. However most people in this circumstance _do_ understand how to use
66email and reply to messages. Kwestie essentially acts as an email conversation
67documenting system to the average user. As developers post questions to an
68issue a customer can simply reply to the message sent and their reply will be
69shown as a comment.
70
71A common scenario is that a developer will ask for a type of log file from a
72customer. Using an email interface the customer can simply reply to this
73request with the log file attached to their email reply.
74
75Because the email is unique and follows a pattern of issue+ID mail filters can
76easily be created in most email clients.
77
78== Tracks ==
79
80Every issue often needs to be processed by a number of people before it can be
81considered closed. In a software engineering environment with customers this
82simplistic version of an exchange usually runs (and is designed in Kwestie to
83run) like this.
84
85-- Support Kwestie --
86Issue Created By Customer (likely via the email address)
871st Line Support Group Receives and Processes Issue
881st Line Support Escalates Issue to 2nd Line Support
892nd Line Support Receives and Processes
902nd Line Support Escalates Issue to Engineering
91-- Engineering Kwestie --
92Engineering Receives and Processes Issue
93Engineering Passes Issue to Engineering Sub Group
94Engineering Sub Group Receives and Processes Issue
95Engineering Sub Group Assigns Issue to Developer
96Developer Triages Issue and Creates Fix
97Developer Passes Issue Fix to Q/A for Testing
98Q/A Tests Issue Fix and Declares Fix Ready for Release
99-- Support Kwestie --
100Customer Receives Issue Fix
101
102Through out that scenario there is a lot of meta processing happening with
103milestone and product tagging for project managers to understand trajectory and
104priority of issues.
105