annotate doc/swallowtail.tex @ 35:d18135398d0f

Some clarifications. (in particular, clarify that full access via the web interface is a long-term goal, just not an immediate priority) Regenerating the pdf file will have to wait for PR 48884.
author David A. Holland
date Sun, 08 Jun 2014 19:15:48 -0400
parents ecae2581f825
children 45bb7b516edb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
1 %\documentclass[11pt,twocolumn]{article}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
2 \documentclass[11pt]{article}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
3 \usepackage{fullpage}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
4
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
5 \usepackage{graphicx}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
6 \usepackage{url}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
7 \usepackage{parskip}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
8
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
9 \usepackage{charter}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
10 \usepackage{courier}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
11 \frenchspacing
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
12
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
13 % without help, latex sets these characters in the wrong font inside \tt
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
14 % (I thought this was mostly fixed, but it's still happening in some cases)
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
15 \newcommand{\us}{{\tt\char`\_}}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
16 \newcommand{\bra}{{\tt\char`\{}}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
17 \newcommand{\ket}{{\tt\char`\}}}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
18 \newcommand{\bs}{{\tt\char`\\}}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
19 \newcommand{\caret}{{\tt\char`\^}}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
20
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
21 % The search strings ``XXX'' and ``future'' are intentionally
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
22 % supported in the text below.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
23
15
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
25
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
26 \title{The Swallowtail Bugtracking System}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
27 \author{David A. Holland}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
28 \date{September 3, 2012}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
29
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
30 \begin{document}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
31 \maketitle
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
32
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
33 \section{Introduction}
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
34
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
35 Swallowtail is a bugtracking system meant to serve as a migration path
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
36 for large GNATS installations.
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
37 It is intended to address various shortcomings of GNATS that appear
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
38 with a large database, and to provide a migration path for that
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
39 database that does not lose information.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
40
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
41 As in GNATS, individual bug reports are called PRs (``problem
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
42 reports'') and are given unique numbers from an increasing sequence.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
43
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
44 The database is kept in PostgreSQL.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
45
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
47 \section{Design Criteria}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
48
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
49 Swallowtail is intended for use by large projects that take their bug
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
50 tracking seriously.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
51 It assumes the existence of a project server that can host the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
52 database, and that project developers have shell access on this
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
53 machine.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
54 Unless special measures are taken, everyone with shell access to the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
55 host machine is assumed to be a developer and has developer-level
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
56 access to the database.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
57 Developers are assumed to be grownups, at least mentally, and to not
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
58 require either baby-sitting or padded cells.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
59 Developers are also assumed to be generally clueful and able to take
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
60 advantage of direct query access to the database.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
61
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
62 A web interface is also provided but it allows only end-user-level
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
63 access.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
64 It also does not attempt to offer the full range of query and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
65 annotation support.
35
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
66 (At least to begin with.)
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
67
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
68 It is assumed that most bug report traffic will be handled by email,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
69 and that all public traffic will be reflected onto one or more mailing
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
70 lists for general distribution.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
71 However, both new bug reports and followup traffic can be submitted
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
72 via the web interface.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
73 It is not necessary to sign up to file a bug report.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
74
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
75 Swallowtail assumes that the database is large (as bug databases go,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
76 not large in DBMS terms), both in terms of the total number of bugs on
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
77 file and the number of issues currently open.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
78 This means that hand-editing is not feasible.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
79 Manual generation of semantic indexes and tags is presumed possible
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
80 but expensive.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
81 It is assumed that multiple types of semantic indexing and tagging
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
82 will be required.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
83 Supporting this is the primary motivation for creating Swallowtail at
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
84 all.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
85
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
86 Swallowtail is also intended to replace GNATS, so it explicitly allows
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
87 importing an existing GNATS database without losing information.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
88 (One of the major problems with migrating away from GNATS, or
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
89 migrating any bug database, is that most bug databases have a
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
90 hardcoded schema with fixed semantics, and no two are equivalent.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
91
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
92 It also is written to allow incoming bug reports to be sent with the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
93 GNATS send-pr tool, as this tool is deployed in the field and can be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
94 updated in the field only gradually.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
95
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
96 We are explicitly assuming that everything that talks directly to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
97 GNATS can be updated, rewritten, or replaced for Swallowtail, and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
98 that there are relatively few such things.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
99
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
100 Swallowtail is being written specifically to manage NetBSD's bug
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
101 database, but it is intended to remain general enough to be useful to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
102 other groups who may be in a similar position.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
103
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
104 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
105 \section{Submitting PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
106
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
107 New PRs can be submitted either by email or via a web form.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
108 The email interface accepts only structured mail in the form sent by
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
109 the GNATS send-pr tool.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
110 Malformed emails are returned.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
111 (Sending handwritten mail to the PR submission address is not
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
112 supported.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
113
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
114 The web form requires a valid email address, as most transactions are
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
115 handled by email.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
116 In the future it might be desirable to set up a scheme that allows
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
117 entirely web-based access for end users.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
118
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
119 XXX: need to decide whether/how much to validate email addresses in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
120 the web form, and also what measures to take to prevent spam.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
121 Maybe an email address already in the system can be used to submit new
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
122 PRs without any kind of further validation step.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
123
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
124 XXX: Also I wonder if we ought to have a blacklist for emails that
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
125 aren't allowed to submit PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
126
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
127 Submitting a PR generates an email to the submitter that reports the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
128 PR number and includes brief instructions for further actions.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
129 If the PR is confidential, a notice to this effect is included in the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
130 response mail, as well as instructions and/or a link for making the PR
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
131 non-confidential.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
132 (This is because most confidential PR submissions are confidential by
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
133 mistake.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
134 The mail also includes a generated password for logging in to the web
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
135 interface as a submitter.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
136 (Currently this does nothing; in the future it will allow e.g.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
137 unsubscribing from the PR.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
138
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
139 The submitter of a PR is automatically subscribed to the PR as a
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
140 respondent.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
141
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
142 Note that currently Swallowtail does not provide its own send-pr
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
143 script, as this is not required for the initial deployment.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
144 There will probably be one in the future.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
145
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
146 NetBSD: The submission address for NetBSD will be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
147 swallowtail@NetBSD.org (unless we decide on something else) although
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
148 the old gnats-bugs address will be kept for the indefinite future to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
149 allow old send-pr scripts to continue to work.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
150
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
151 GNATS: For some reason GNATS accepts a wide range of malformed
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
152 incoming emails.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
153 This almost invariably makes a mess when it occurs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
154
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
156 \section{Retrieving PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
157
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
158 The web interface includes a scheme for retrieving any PR
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
159 (except PRs marked confidential) by a well-known address.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
160 The search page also allows retrieving a single PR by number.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
161
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
162 NetBSD: The address will probably be \url{http://bugs.netbsd.org/12345}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
163
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
164 In the web interface, text within the administrative or message logs
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
165 that can be identified as a PR number is rendered as a clickable link.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
166
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
167 Email addresses are not displayed in the web interface at all.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
168 (Or maybe, in the future when this is possible, only when logged in.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
169
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
170 The \texttt{query-pr} command line tool can retrieve any PR, including
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
171 confidential PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
172 This is done by passing it the PR number.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
173 As in GNATS the option \texttt{--full} prints the message and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
174 administrative logs as well as the base PR data.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
175 Use \texttt{--attach N} to retrieve an attachment.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
176
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
177 \texttt{query-pr} can also be used for searching.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
178 See below.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
179
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
180 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
181 \section{Commenting on PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
182
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
183 Comments on PRs can be submitted either by email or via the PR's web
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
184 page.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
185 In either case, files can be provided (as MIME attachments or via
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
186 upload) that are filed as attachments to the PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
187 Comments on PRs can also be submitted by running \texttt{comment-pr},
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
188 or from \texttt{browse-pr}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
189 All comments go to the PR's message log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
190
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
191 MIME multipart messages that include both text and HTML will be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
192 converted to plain text.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
193 MIME mail that is HTML-only will be rejected.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
194 The MIME content-type of mails is retained, so if non-ASCII mail
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
195 appears it can be displayed correctly, and so remailed text is marked
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
196 correctly.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
197
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
198 The comment address is the same as the submission address.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
199 Comments are identified by the Subject: line, which should begin with
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
200 \texttt{Re: category/12345} like in GNATS.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
201 (In the future we might switch to a tidier tagging scheme, such as
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
202 \texttt{[NetBSD 12345]} anywhere in the Subject: line, but the old
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
203 style will have to be supported indefinitely regardless.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
204 The category need not be the right category for the PR; if it is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
205 wrong, the right one will be substituted before the comment is filed
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
206 or remailed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
207 Also, if the Subject: line of a comment is empty except for the tag,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
208 the PR's synopsis will be inserted.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
209
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
210 Source control commit messages routed to the bug database are treated
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
211 as comments.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
212
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
213 Comments are remailed to all email addresses subscribed to the PR,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
214 and also (if not confidential) to the mailing list associated with the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
215 PR's category.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
216
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
217 Remailed comments have a References: header that allows them to thread
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
218 together.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
219 (The contents of it need to be site-configurable.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
220
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
221 Comments filed on a locked PR go to the administrator queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
222
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
223 GNATS: GNATS has no web-based way of filing comments, which
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
224 occasionally annoys people.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
225
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
226 GNATS: GNATS has no MIME support at all and corrupts mails with
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
227 attachments when filing them in the database (not fatally but
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
228 annoyingly), which aggravates everyone regularly.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
229
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
230 GNATS: GNATS cannot lock PRs, and old PRs often receive spam or
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
231 misdirected mail that has to be cleaned up by hand.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
232
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
233 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
234 \section{Updating/Editing PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
235
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
236 PRs are edited with \texttt{edit-pr}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
237 (This is not accessible to end users.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
238 An end user wanting to adjust the PR state should file a comment
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
239 requesting the change.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
240
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
241 Changes made with \texttt{edit-pr} are recorded in the PR's
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
242 administrative log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
243 (XXX: some of them should be mailed out and not others, but it isn't
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
244 clear which are which yet.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
245
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
246 Each PR has the following base properties:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
247 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
248
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
249 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
250 Its number.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
251 (This cannot be changed.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
252
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
253 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
254 The \emph{synopsis}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
255 This is a short (one-line) description of the PR provided by the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
256 submitter.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
257 It can (and should) be adjusted as necessary during the lifetime of
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
258 the PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
259
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
260 If in a new submission or conversion from GNATS the Subject: line of
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
261 the email is not the same as the synopsis field, the effect will be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
262 that the synopsis is first set to the provided Subject: and then to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
263 the provided synopsis, generating the corresponding change entry in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
264 the PR's administrative log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
265
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
266 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
267 The confidential flag.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
268 PRs marked confidential can be accessed only by developers, and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
269 traffic about them is not reflected to mailing lists.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
270
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
271 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
272 The \emph{state}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
273 This is the basic state the PR is in.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
274 (Open, closed, pending-pullups, etc.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
275 The list of states is configurable.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
276 States have a name (which should be an identifier), a description, and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
277 flags that identify if the state is a closed state, whether reminder
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
278 and/or feedback mail should be sent.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
279 There is also an obsolete flag that prevents new uses of the state.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
280
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
281 NetBSD: we will start out with the same set of states as we have in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
282 GNATS, plus ``stuck''.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
283 (A PR is stuck if a respondent is needed and there are none.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
284
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
285 XXX: when you put a PR into feedback state you should provide a
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
286 timeout period and whether the PR should, if the timeout expires, be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
287 changed to ``stuck'' or ``closed''.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
288
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
289 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
290 The \emph{locked} flag.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
291 A locked PR cannot be edited or commented on until it is first
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
292 unlocked.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
293 Attempting to run \texttt{edit-pr} or \texttt{comment-pr} on a locked
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
294 PR will result in a message that the PR is locked and the option to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
295 unlock it or abort.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
296 (Filing a comment on a locked PR by email or via the web interface
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
297 results in the comment going to the administrator queue.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
298 PRs are automatically locked by the system a month after being
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
299 closed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
300
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
301 The database conversion from GNATS will mark all PRs locked that have
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
302 been closed for more than a month.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
303
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
304 GNATS: GNATS does not support locked PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
305
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
306 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
307 The database schema version that was current when the PR arrived.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
308 This is useful for knowing what conversions were applied to the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
309 data.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
310 The initial schema version is 1.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
311 Version 0 means ``converted from GNATS''.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
312
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
313 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
314 The date (and time) that the PR arrived.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
315
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
316 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
317 The date (and time) that the PR was closed, if appropriate.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
318
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
319 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
320 The original submitter, who remains the original submitter even if
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
321 later unsubscribed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
322
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
323 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
324 The \emph{release}, which is the Release field from GNATS.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
325
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
326 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
327 The \emph{environment}, which is the Environment field from GNATS.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
328
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
329 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
330 The administrative log, which is a list of messages generated when the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
331 PR is updated.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
332
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
333 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
334 The message log, which is a list of comments filed on the PR and their
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
335 attachments.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
336
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
337 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
338 The subscription lists.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
339 As described below, a user can be subscribed in any of three ways
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
340 (and more than once).
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
341 Each subscription also has a ``batch'' flag to send out update mails
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
342 in bundles.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
343 (XXX: it is not clear if this needs to be implemented up front or not.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
344
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
345 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
346 Classification entries.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
347 There are, in general, multiple classification schemes, which come in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
348 different flavors.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
349 Each PR has a value for each classification scheme (which might be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
350 missing or null in some cases) whose allowable values and meaning are
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
351 defined by the classification scheme.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
352 The GNATS Severity, Priority, Class, and Category fields are handled
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
353 as classification schemes.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
354 (The category scheme has some special-case handling as described
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
355 elsewhere.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
356
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
357 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
358
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
359 The mail from-address and message-ID, which are retained by GNATS, are
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
360 in Swallowtail just handled as entries in the administrative log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
361
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
362 The Description, How-To-Repeat, and Fix fields of a GNATS PR, along
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
363 with any ``unformatted'' text that confused GNATS, are in Swallowtail
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
364 handled as the initial entries in the PR's message log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
365
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
366 Idea for the future: provide up/down vote buttons (both in the web
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
367 page and in edit-pr) to help rank the importance of individual bugs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
368 If you are also seeing a particular problem, you vote it up; if you
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
369 are using the affected software but not seeing it, you vote it
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
370 down.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
371 Or something like that.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
372
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
373 The data associated with users is described in another section below.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
374 Decoupling user data from individual PRs makes it feasible to update
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
375 your email address in the database, which is tedious to the point of
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
376 impossible with GNATS.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
377
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
379 \section{Tracking PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
380
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
381 The simple way to track PRs is to subscribe to the mailing list(s)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
382 that Swallowtail traffic is reflected to.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
383 However, since those lists are likely to be high volume, and also do
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
384 not carry traffic about confidential PRs, it is also possible to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
385 subscribe directly to individual PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
386
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
387 In the web interface, there is a link for this.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
388 XXX: there should be a way to do this by email, but it isn't yet clear
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
389 what it should be.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
390
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
391 Everyone subscribed to a PR receives a copy of all comments made on
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
392 the PR, and notices of significant administrative changes.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
393 There are two additional modes:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
394
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
395 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
396
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
397 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
398 A \emph{respondent} is someone who is experiencing the problem and can
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
399 provide feedback if needed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
400 The original submitter is always subscribed as a respondent, but
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
401 especially for old PRs, they may disapper and others may appear.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
402
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
403 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
404 A \emph{responsible party} is someone who is fixing the problem, or at
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
405 least taking charge of seeing that it gets fixed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
406 This may be a specific developer, or it may be a role account that
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
407 looks after PRs nobody specific is handling.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
408 For new PRs a default responsible party can be subscribed based on the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
409 PR category.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
410 Ordinarily only one developer will be subscribed as responsible.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
411
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
412 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
413
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
414 If the last respondent with \texttt{mailto} permission unsubscribes
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
415 (or is unsubscribed) from a PR that is in feedback state, it is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
416 automatically switched to the stuck state.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
417 (XXX: but do we want to make ``stuck'' a known special case like this?)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
418
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
419 XXX: there should be a way to bring a PR to the attention of another
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
420 developer short of subscribing them to it.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
421
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
422 In the future there should be an RSS feed for each PR, but this is not
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
423 expected to be implemented in the first rollout.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
424 (There should also be individual RSS feeds for categories, and based
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
425 on classification schemes, and whatever else.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
426
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
427 GNATS: GNATS has no ability to allow anyone but the original submitter
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
428 to function as a respondent.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
429
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
430 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
431 \section{Reminder Mails}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
432
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
433 The system periodically sends out two kinds of mail: \emph{reminder
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
434 mail}, that goes to developers responsible for open PRs, and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
435 \emph{feedback mail}, that goes to the submitters (typically) of PRs
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
436 that have been placed in feedback state.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
437
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
438 One reminder mail is sent to each developer subscribed as
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
439 ``responsible'' to at least one PR, listing the PR by number and
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
440 synopsis.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
441 (XXX: sorted how?)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
442 Reminders are not sent for PRs that are in feedback.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
443
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
444 NetBSD: reminders are also not sent for PRs that are in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
445 pending-pullups state.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
446
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
447 Feedback mail is sent to each user subscribed as ``respondent'' to at
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
448 least one PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
449 If the user is being nagged about three or fewer PRs, one email is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
450 sent for each PR, with the headers adjusted so replies get filed in
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
451 that PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
452 This makes it easier for casual users to respond correctly.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
453 If the user is being nagged about more PRs than that, only one mail is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
454 sent, in the same form as reminder mail.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
455 In the future the feedback mails will repeat the message requesting
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
456 feedback; this is not expected to be implemented for the initial
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
457 deployment.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
458
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
459 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
460 \section{Statistical Reporting}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
461
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
462 Various scripts to gather statistics are provided, both as part of the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
463 web interface and to generate periodic report mail.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
464
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
465 These include:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
466 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
467
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
468 \item The summary statistics, originally written by Erik E. Fair for
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
469 the NetBSD GNATS;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
470
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
471 \item A daily report, based on the one GNATS sends to the netbsd-bugs
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
472 mailing list;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
473
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
474 \item A monthly report, based on the one I wrote to send to the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
475 developers list;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
476
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
477 \item Whatever other stuff may come up or looks interesting.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
478
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
479 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
480
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
481 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
482 \section{Searching for PRs}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
483
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
484 The web interface provides a simple search form, which can search on
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
485 various fields or on text in the log.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
486 In the future this may be made more powerful; for the time being it is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
487 expected to remain largely the same as the interface to GNATS.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
488
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
489 Command-line searching can be done with \texttt{query-pr}.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
490 Any value in any field can be matched; text search in the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
491 administrative and message logs (or anywhere in the PR) is also
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
492 supported.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
493 XXX: this should take advantage of postgres's full text search tools,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
494 and this section should be rewritten once it's clear what that
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
495 provides.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
496
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
497 There is a flag for also searching closed PRs, which are skipped by
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
498 default.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
499 There is also a flag to retrieve a randomly selected PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
500
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
501 Note that the weird GNATS query-pr query language is not supported.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
502 (Complex queries are best issued using the SQL interface.)
15
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
503
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
504
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
505 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
506 \section{Browsing the Database}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
507
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
508 The tool \texttt{browse-pr} is provided for examining the database.
35
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
509 Its user interface is reminiscent of a newsreader, e.g. slrn.
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
510 And, it will probably only be implemented in the future.
35
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
511 (It is something I would really like to have, but it's not critical
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
512 for the first deployment.)
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
513
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
514 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
515 \section{Direct SQL Interface}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
516
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
517 XXX: document this, including particularly the views that developers
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
518 are meant to use to look at things.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
519
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
520 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
521 \section{Database Users}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
522
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
523 Unlike GNATS, the Swallowtail database tracks users explicitly.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
524 Each one has a username and a real name, and one or more email
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
525 addresses.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
526 When more than one email address is on file, one of the addresses is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
527 selected for sending mail.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
528 The Organization field that GNATS stores and send-pr provides is filed
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
529 with the email address that sent it.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
530 The database also tracks the last time mail was received from each
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
531 address, as this is often useful when sorting out problems.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
532
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
533 Each address also has a ``web password'' attached to it.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
534 This is generated randomly when the address is first encountered
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
535 in a PR submission and sent back to the user in the response to the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
536 submission.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
537 In the future it is meant to allow logging into the web site as a
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
538 submitter; for now it does nothing.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
539
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
540 Each user also has the following permission bits:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
541 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
542
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
543 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
544 \texttt{mailto} -- if this is false, Swallowtail will not send any
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
545 email to this user.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
546 If the only users subscribed to a PR as respondents have mail
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
547 disabled (or there are no users subscribed as respondents) setting the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
548 PR to feedback state will fail.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
549 This flag can be used for users whose mail bounces, or who are
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
550 otherwise no longer available.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
551
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
552 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
553 \texttt{responsible} -- if this is true, the user is allowed to be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
554 responsible for open PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
555 This should normally be set for all developers, and only developers,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
556 and should be cleared when a developer quits.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
557 (Any open PRs they are responsible for should be reassigned.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
558 It should also be set for role accounts that are responsible by
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
559 default when nobody else is.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
560
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
561 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
562 \texttt{oldresponsible} -- if this is true, the user is allowed to be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
563 responsible only for closed PRs.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
564 This should be set if \texttt{responsible} is set, and should also be
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
565 left set when a developer quits.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
566
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
567 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
568 \texttt{editpr} -- if this is true, the user is allowed to run
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
569 \texttt{edit-pr} and make changes to the database.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
570 This should be set for all developers, and only developers, and should
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
571 be cleared when a developer quits.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
572
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
573 \item
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
574 \texttt{admin} -- if this is true, the user is allowed to perform
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
575 administrative tasks.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
576
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
577 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
578
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
579 Note that while all developers are assumed to have a username, end
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
580 users will in general not have one.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
581
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
582 XXX: what's the mechanism for updating user information?
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
583
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
584 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
585 \section{Administrator Queue}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
586
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
587 The database contains an explicit queue, or in fact several explicit
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
588 queues, of issues requiring administrator attention.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
589 The following subsections describe the components of the administrator
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
590 queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
591 The administrator queue is accessible only to users with the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
592 \texttt{admin} permission bit set.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
593
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
594 \subsection{Comments filed on locked PRs.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
595
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
596 When a comment is made on a PR that is locked, instead of being
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
597 applied to the PR it is placed in the administrator queue for manual
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
598 attention.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
599 The possible actions are:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
600 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
601 \item defer: put it off for tomorrow;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
602 \item accept: add it to the PR, for valid/intended comments;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
603 \item new: create a new PR instead;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
604 \item reroute: send to another PR instead, for mistyped PR numbers;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
605 \item bounce: return to sender, for non-spam with no clear other choice;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
606 \item discard: erase it, as comments on locked PRs are often spam.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
607 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
608
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
609 Accepting a comment on a locked PR automatically unlocks it, and by
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
610 default also reopens it.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
611
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
612 \subsection{Feedback mail bounces.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
613
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
614 When bounced mail arrives, Swallowtail examines it to try to determine
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
615 which PR and which user it applies to.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
616 If it appears to be a bounce generated from feedback mail (or from
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
617 reminder mail) it goes into this queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
618 The full mail is retained for inspection.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
619
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
620 The possible actions are:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
621 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
622 \item defer: put it off for tomorrow;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
623 \item count: just add one to the number of bounces recorded;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
624 \item changeaddr: change to a different address for the same user;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
625 \item nomail: inhibit sending further mail to the user;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
626 \item discard: delete the mail from the queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
627 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
628 % XXX the count used by ``count'' needs to be described in the user
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
629 % data section.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
630
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
631 \subsection{Other mail bounces.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
632
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
633 Bounced mail that can be associated with a PR and/or user but is not
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
634 feedback goes into this queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
635 The actions are the same as for feedback bounces.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
636
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
637 \subsection{Junk mail.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
638
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
639 All other unrecognized mail goes into this queue.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
640 The possible actions are:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
641 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
642 \item defer: put it off for tomorrow;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
643 \item forward: forward it somewhere (normally to yourself);
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
644 \item discard: erase it.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
645 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
646
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
647 (XXX: maybe this stuff should just be forwarded on or dumped out into
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
648 a mailbox somewhere.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
649
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
650 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
651 \section{Classification Schemes}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
652
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
653 Here is a quick discussion of the classification schemes that we
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
654 expect to use, or might use.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
655
19
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
656 There are four kinds of classifications: enumerated (the value must be
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
657 one from a fixed set of constants), tags (the value is zero or more
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
658 constants from a fixed pool), text (the value can be any string), and
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
659 hierarchical (like enumerated, but with structure).
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
660
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
661 In the long run some of the things that are currently PR states may
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
662 want to be tags instead.
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
663
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
664 \subsection{Enumerated classifications}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
665
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
666 \paragraph{Category.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
667 The part of the system affected, in broad terms.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
668 The same as the GNATS ``Category'' field.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
669 This classification is special-cased in some places, at least for now;
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
670 in the future it might make sense to allow those places to do matching
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
671 on arbitrary classifications.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
672
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
673 \paragraph{Class.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
674 The GNATS ``Class'' field: \texttt{sw-bug}, \texttt{doc-bug},
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
675 \texttt{change-request}, etc.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
676
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
677 \paragraph{Severity.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
678 The GNATS ``Severity'' field.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
679
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
680 \paragraph{Priority.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
681
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
682 The GNATS ``Priority'' field.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
683
19
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
684 \subsection{Tag sets.}
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
685
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
686 \paragraph{Release-goals.}
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
687 Tags like \texttt{6-CRITICAL}, to be applied and managed by releng
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
688 when planning for a release.
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
689
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
690 \paragraph{Branch-notes.}
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
691 Tags like \texttt{5-ONLY}, to mark bugs that do not affect HEAD and
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
692 that can therefore be retired along with branches.
0365c1ab6fd8 Improve description of classification schemes.
David A. Holland
parents: 18
diff changeset
693
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
694 \subsection{Text classifications}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
695
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
696 \paragraph{Manpage.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
697 The name of the nearest man page to where the problem appears to be.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
698 FreeBSD has been using this as a tagging scheme for some time.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
699
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
700 \paragraph{Package.}
21
ecae2581f825 minor edit from wiz's comments
David A. Holland
parents: 20
diff changeset
701 The identity (category/directory form) of the package affected.
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
702 (For pkgsrc bugs only.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
703
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
704 \subsection{Hierarchical taxonomies}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
705
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
706 \paragraph{Subsystem.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
707 The hierarchical taxonomy I've been using for the buglists web page.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
708
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
709 \paragraph{Consequences.}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
710 A hierarchical taxonomy of the results of the problem (annoyance,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
711 system crash, remote root exploit, etc.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
712
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
713 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
714 \section{Other Future Features}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
715
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
716 Some other things that aren't likely to be deployed immediately but
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
717 are worth considering later:
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
718
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
719 \begin{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
720
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
721 \item Have a way to note dependencies among PRs, as in 12345 is
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
722 stalled until 24680 is fixed.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
723 (This does not occur often enough in practice to be a priority.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
724
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
725 \item Have a way to massedit a group of PRs; for example, put all PRs
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
726 against a particular driver or filesystem or whatever into feedback
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
727 after major fixes.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
728
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
729 \item There should be administrator buttons for moving comments to
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
730 different PRs, for e.g. misfiled comment notices.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
731
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
732 \item It should be possible for users to set personal tags/priorities
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
733 for annotating and/or sorting nag mail.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
734 (E.g. sort by priority, or age, or time since last change, etc.)
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
735
20
675b7dd62bba I just thought of another thing for the future list.
David A. Holland
parents: 19
diff changeset
736 \item It would be good for each nag mail (at least reminder mail,
675b7dd62bba I just thought of another thing for the future list.
David A. Holland
parents: 19
diff changeset
737 maybe not feedback mail) to report the changes in the list since the
675b7dd62bba I just thought of another thing for the future list.
David A. Holland
parents: 19
diff changeset
738 last one that went out.
675b7dd62bba I just thought of another thing for the future list.
David A. Holland
parents: 19
diff changeset
739
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
740 \item It should be possible to blacklist Cc: of certain addresses
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
741 (particularly internal lists) in bug traffic.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
742
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
743 \item Any new send-pr script should be configurable by the user with
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
744 return addresses and default values for organization and so forth.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
745
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
746 \item It would be nice to be able to track PR status separately (or
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
747 semi-separately) for release branches.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
748 However, it isn't clear how to do this without making a cumbersome
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
749 mess.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
750
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
751 \item It might be useful to be able to explicitly merge duplicate PRs,
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
752 without either losing information or creating a confused mess of
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
753 interleaved comments.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
754
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
755 \item It might be worth adding threading for comments.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
756
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
757 \item We should figure out how to make Google see and index the pages
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
758 for each PR.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
759 Or maybe just the open ones.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
760
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
761 \item It would be nice if the web page for each PR had browse features
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
762 like links for ``show all PRs of this priority'' or ``show all PRs
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
763 from this submitter'' and whatnot.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
764
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
765 \item Lists of PRs in the web interface should have a sidebar to let
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
766 you narrow the list, and a list of the filters currently applied (like
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
767 e.g. NewEgg's product searches).
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
768 Also, the sort order should be defined (unlike GNATS) and selectable.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
769
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
770 \item It might be worthwhile to allow PR subscriptions in a brief mode
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
771 where all you get is ``Joe commented on PR 12345''.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
772
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
773 \item We will eventually want a way to turn MIME blobs already in the
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
774 database into attachments.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
775
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
776 \item Should have per-user tags that are more or less private.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
777
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
778 \item Should have per-user tags that are public.
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
779
35
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
780 \item In the long run it should be possible to log into the web
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
781 interface as a developer and do all developer things there instead of
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
782 from the command line.
d18135398d0f Some clarifications.
David A. Holland
parents: 21
diff changeset
783
18
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
784
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
785 \end{itemize}
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
786
2f6e36e87efd first draft.
David A. Holland
parents: 15
diff changeset
787 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15
c4ee36b629c0 Build bits for docs, and a starting placeholder doc.
David A. Holland
parents:
diff changeset
788 \end{document}