]> code.delx.au - gnu-emacs/blob - admin/notes/bugtracker
emacsbugs.donarmstrong.com -> debbugs.gnu.org throughout.
[gnu-emacs] / admin / notes / bugtracker
1 NOTES ON THE EMACS BUG TRACKER -*- outline -*-
2
3 The Emacs Bug Tracker can be found at http://debbugs.gnu.org/
4
5 For a list of all bugs, see http://debbugs.gnu.org/emacs
6
7 ** How do I report a bug in Emacs now?
8 The same way as you always did. Send mail to bug-gnu-emacs@gnu.org,
9 or use M-x report-emacs-bug.
10
11 The only differences are:
12
13 i) Your report will be assigned a number and generate an automatic reply.
14
15 ii) Optionally, you can set some database parameters when you first
16 report a bug (see "Setting bug parameters" below).
17
18 iii) If you want to CC: someone, use X-Debbugs-CC: (this is important;
19 see below).
20
21 Once your report is filed and assigned a number, it is sent out to the
22 bug mailing list. In some cases, it may be appropriate to just file a
23 bug, without sending out a copy. To do this, send mail to
24 quiet@debbugs.gnu.org.
25
26 ** How do I reply to an existing bug report?
27 Reply to 123@debbugs.gnu.org, replacing 123 with the number
28 of the bug you are interested in. NB this only sends mail to the
29 bug-list, it does NOT (?) send a CC to the original bug submitter.
30 So you need to explicitly CC him/her (and anyone else you like).
31
32 (Many people think the submitter SHOULD be automatically subscribed
33 to subsequent discussion, but this does not seem to be implemented.
34 See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078)
35
36 Do NOT send a separate copy to the bug list, since this may generate a
37 new report. The only time to send mail to the bug list is to create a
38 new report.
39
40 Gnus users can add the following to message-dont-reply-to-names;
41 similarly with Rmail and rmail-dont-reply-to-names:
42
43 [FIXME needs updating for debbugs.gnu.org]
44
45 "\\(emacs-pretest-bug\\|bug-gnu-emacs\\)@gnu\\.org\\|\
46 \\(\\(submit\\|control\\|owner\\)@emacsbugs\\.\\|bug-submit-list@\\)\
47 donarmstrong\\.com"
48
49 The "bug-submit-list@donarmstrong.com" and
50 "owner@debbugs.gnu.org" entries are there because they can
51 appear in the "Resent-To" and "Resent-CC" headers, respectively. For a
52 long time Rmail erroneously included these headers in replies. If you
53 correspond with an Rmail user on a bug, these addresses may end up in
54 the Cc. Mailing to them does nothing but create duplicates and errors.
55 (It is possible you might want to have a dialog with the owner
56 address, outside of normal bug reporting.)
57
58 ** When reporting a bug, to send a Cc to another address
59 (e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header.
60 Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a
61 mail with the bug report number in. If you do not do this, each reply
62 in the subsequent discussion will end up creating a new bug. This is
63 annoying.
64
65 Note that the way this feature works is perhaps not ideal (Bug#1720).
66 If X-Debbugs-CC: was specifed by a real header, that header is removed
67 in the mail sent out to the bug list, and the addresses merged into
68 the Resent-CC header (see below). They don't appear as an explicit CC:
69 header, nor do they appear in the Reply-To: header. So people you
70 X-Debbugs-CC are not included in any following discussion unless they are
71 manually cc'd. So this feature really only serves to notify them that
72 a bug has been filed. It's then up to them to follow any subsequent
73 discussion.
74
75 If X-Debbugs-CC were merged into the Reply-To header, this might work
76 more the way people expect.
77
78 ** How does Debbugs send out mails?
79
80 The mails are sent out to the bug list with From: and To: unchanged.
81 Eg if you file a bug with "submit@debbugs.gnu.org", that
82 remains in the To: address. They reach the bug list by being resent.
83
84 Mails arriving at the bug list have the following Resent-* headers:
85
86 [ FIXME needs updating for debbugs.gnu.org ]
87
88 Resent-From: person who submitted the bug
89 Resent-To: bug-submit-list@donarmstrong.com
90 Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries
91
92 The "maintainer email address" is "Emacs Bugs <bug-gnu-emacs@gnu.org>"
93 in most cases.
94
95 They also have:
96
97 Reply-To: bug submitter, 123@debbugs.gnu.org
98
99 ** To not get acknowledgement mail from the tracker,
100 add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus,
101 you can add an element to gnus-posting-styles to do this automatically, eg:
102
103 ("gnu-emacs\\(-pretest\\)?-bug"
104 ("X-Debbugs-No-Ack" "yes"))
105
106 (adjust the regexp according to the name you use for the bug lists)
107
108 ** To record a bug in the tracker without sending mail to the bug list.
109 This can be useful to make a note of something discussed on
110 emacs-devel that needs fixing. In other words, this can be the
111 equivalent of adding something to FOR-RELEASE.
112
113 To: quiet@debbugs.gnu.org
114 [headers end]
115 Package: emacs
116 Version: 23.0.60
117 Severity: minor
118
119 Remember to fix FOO, as discussed on emacs-devel at http://... .
120
121 ** Not interested in tracker control messages (tags being set, etc)?
122 Discard mails matching:
123
124 ^X-Emacs-PR-Message: transcript
125
126 When you close a bug, you get a message matching:
127
128 ^X-Emacs-PR-Message: closed
129
130 ** How to avoid multiple copies of mails.
131 When you reply to a bug, respect the Reply-To address, ie send mail
132 only to the submitter address and the numbered bug address. Do not
133 send mail direct to bug-gnu-emacs or emacs-pretest-bug unless you are
134 reporting a new bug.
135
136 ** To close bug #123 (for example), send mail
137
138 To: 123-done@debbugs.gnu.org
139
140 with a brief explanation in the body as to why the bug was closed.
141 There is no need to cc the address without the "-done" part or the
142 submitter; they get copies anyway so this will just result in more
143 duplicate mail.
144
145 ** Setting bug parameters.
146 There are two ways to set the parameters of bugs in the database
147 (tags, severity level, etc). When you report a new bug, you can
148 provide a "pseudo-header" at the start of the report, eg:
149
150 Package: emacs
151 Version: 23.0.60
152 Severity: minor
153
154 Optionally, add a sub-package, eg Package: emacs,calendar.
155 This can include tags. Some things (e.g. submitter) don't seem to
156 work here.
157
158 Otherwise, send mail to the control server, control@debbugs.gnu.org.
159 At the start of the message body, supply the desired commands, one per
160 line:
161
162 command bug-number [arguments]
163 ...
164 quit|stop|thank|thanks|thankyou|thank you
165
166 The control server ignores anything after the last line above. So you
167 can place control commands at the beginning of a reply to a bug
168 report, and Bcc: the control server (note the commands have no effect
169 if you just send them to the bug-report number). Bcc: is better than Cc:
170 in case people use Reply-to-All in response.
171
172 Some useful control commands:
173
174 *** To reopen a closed bug:
175 reopen 123
176
177 *** Bugs can be tagged in various ways (eg wontfix, patch, etc).
178 The available tags are:
179 patch wontfix moreinfo unreproducible fixed notabug
180 Note that the list at http://debbugs.gnu.org/Developer#tags
181 is incorrect, at least for Emacs.
182 The list of tags can be prefixed with +, - or =, meaning to add (the
183 default), remove, or reset the tags. E.g.:
184
185 tags 123 + wontfix
186
187 ** Usertags
188
189 See <http://wiki.debian.org/bugs.debian.org/usertags>
190
191 "Usertags" are very similar to tags: a set of labels that can be added
192 to a bug. There are two differences between normal tags and user
193 tags:
194
195 1) Anyone can define any valid usertag they like. In contrast, only a
196 limited, predefined set of normal tags are available (see above).
197
198 2) A usertag is associated with a specific email address.
199
200 You set usertags in the same way as tags, by talking to the control
201 server. One difference is that you can also specify the associated
202 email address. If you don't explicitly specify an address, then it
203 will use the one from which you send the control message. The address
204 must have the form of an email address (with an "@" sign and least 4
205 characters after the "@").
206
207 *** Setting usertags
208
209 a) In a control message:
210
211 user bug-gnu-emacs@gnu.org
212 usertags 1234 any-tag-you-like
213
214 This will add a usertag "any-tag-you-like" to bug 1234. The tag will
215 be associated with the address "bug-gnu-emacs@gnu.org". If you omit
216 the first line, the tag will be associated with your email address.
217
218 The syntax of the usertags command is the same as that of tags (eg wrt
219 the optional [=+-] argument).
220
221 b) In an initial submission, in the pseudo-header:
222
223 User: bug-gnu-emacs@gnu.org
224 Usertags: a-new-tag
225
226 Again, the "User" is optional.
227
228 *** Searching by usertags
229
230 The search interface is not as advanced as for normal tags. You need
231 to construct the relevant url yourself rather than just typing in a
232 search box. The only piece you really need to add is the "users"
233 portion, the rest has the same syntax as normal.
234
235 **** To find all bugs usertagged by a given email address:
236
237 http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org
238
239 (Supposedly, the "users" field can be a comma-separated list of more
240 than one email address, but it does not seem to work for me.)
241
242 **** To find bugs tagged with a specific usertag:
243
244 This works just like a normal tags search, but with the addition of a
245 "users" field. Eg:
246
247 http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org;tag=calendar
248
249 *** To merge bugs:
250 Eg when bad replies create a bunch of new bugs for the same report.
251 Bugs must all be in the same state (e.g. same package(s) and severity
252 -- see `reassign' and `severity' below), but need not have the same
253 tags (tags are merged). E.g.:
254
255 merge 123 124 125 ...
256
257 Note that merging does not affect titles. In particular, a "retitle"
258 of merged bugs only affects individual bugs, not all of them.
259
260 *** Forcing a merge:
261 Like `merge', but bugs need not be in the same state. The packages
262 must still match though (see `reassign' below). The first one listed
263 is the master. E.g.:
264
265 forcemerge 123 124 125 ...
266
267 Note: you cannot merge with an archived bug - you must unarchive it first.
268
269 *** To unmerge bugs:
270 To disconnect a bug from all bugs it is merged with:
271
272 unmerge 123
273
274 This command accepts only one bug number.
275
276 *** To clone bugs:
277 Useful when one report refers to more than one bug.
278
279 clone 123 -1 [-2 ...]
280 retitle -1 second bug
281 retitle -2 third bug
282
283 The negative numbers provide a way to refer to the cloned bugs (which
284 will be assigned proper numbers).
285
286 NB you cannot clone a merged bug. You'd think that trying to do so
287 would just give you an unmerged copy of the specified bug number, but no:
288
289 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474742
290
291 You must unmerge, clone, then re-merge.
292
293 *** To set severity:
294 severity 123 critical|grave|serious|important|normal|minor|wishlist
295
296 See http://debbugs.gnu.org/Developer#severities for the meanings.
297
298 *** To set the owner of a bug:
299 owner 123 A Hacker <none@example.com>
300
301 The shorthand `!' means your own address.
302
303 *** To remove the owner of a bug:
304 noowner 123
305
306 *** To mark a bug as fixed in a particular version:
307 fixed 123 23.0.60
308
309 *** To remove a "fixed" mark:
310 notfixed 123 23.0.60
311
312 *** To assign or reassign a bug to a package or list of packages:
313 reassign 1234 emacs,cc-mode
314
315 ** To remove spam from the tracker, move it to the `spam' pseudo-package:
316 reassign 123 spam
317
318 ** To change the title of a bug:
319 retitle 123 Some New Title
320
321 ** To change the submitter address:
322 submitter 123 none@example.com
323
324 Note that it does not seem to work to specify "Submitter:" in the
325 pseudo-header when first reporting a bug.
326
327 ** How does archiving work?
328 You can still send mail to a bug after it is closed. After 28 days with
329 no activity, the bug is archived, at which point no more changes can
330 be made. If you try to send mail to the bug after that (or merge with
331 it), it will be rejected. To make any changes, you must unarchive it first:
332
333 unarchive 123
334
335 The bug will be re-archived after the next 28 day period of no activity.
336
337 ** The web-page with the list of bugs is slow to load
338
339 It's a function of the number of displayed bugs. You can speed things
340 up by only looking at the newest 100 bugs:
341
342 http://debbugs.gnu.org/cgi-bin/pkgreport.cgi?newest=100;package=emacs
343
344 The above page is accessible from the "Options" section at the end of
345 the "main list of bugs" page. Select bugs "in package" = emacs;
346 "newest bugs" = 100. (I have no idea how you get to that Options
347 section without having to go through the bug list page first...)
348
349 ** Mails to the bug tracker disappear
350
351 Apparently it has some kind of spam filter that sometimes silently
352 discards valid mails. Adding a subject (pointless in control messages)
353 may help.
354
355 ** ChangeLog issues
356
357 *** When you fix a bug, it can be helpful to put the bug number in the
358 ChangeLog entry, for example:
359
360 * foo.el (foofunc): Fix the `foo' case. (Bug#123)
361
362 Then the relevant bug can be found for easy reference. If it's an
363 obvious fix (e.g. a typo), there's no need to clutter the log with the
364 bug number.
365
366 Similarly, when you close a bug, it can be helpful to include the
367 relevant ChangeLog entry in the message to the bug tracker, so people
368 can see eaxctly what the fix was.
369
370 *** bug-reference-mode
371
372 Activate `bug-reference-mode' in ChangeLogs to get clickable links to
373 the bug web-pages.
374
375 *** Debian stuff
376
377 http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html
378
379 ** Gnus-specific voodoo
380
381 *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group
382
383 *** If the above is not available:
384 (add-hook 'gnus-article-mode-hook
385 (lambda ()
386 (setq bug-reference-url-format "http://debbugs.gnu.org/%s")
387 (bug-reference-mode 1)))
388
389 and you can click on the bug number in the subject header.