]> code.delx.au - gnu-emacs/blob - admin/notes/bugtracker
from trunk
[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 * Quick-start guide
6
7 This is 95% of all you will ever need.
8
9 ** How do I report a bug?
10 Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org.
11 If you want to Cc someone, use an "X-Debbugs-CC" header instead.
12
13 ** How do I comment on a bug?
14 Reply to a mail on the bug-gnu-emacs list in the normal way.
15 Or send a mail to 123@debbugs.gnu.org.
16
17 If the bug is old and closed, you may have to unarchive it first.
18 Send a mail to control@debbugs.gnu.org with
19 unarchive 123
20 on the first line of the body.
21
22 ** How do I close a bug?
23 Send a mail to 123-done@debbugs.gnu.org. In the body, explain
24 why the bug is being closed.
25
26 ** How do I set bug meta-data?
27 By mailing commands to control@debbugs.gnu.org. Place commands at the
28 start of the message body, one per line.
29
30 severity 123 serious|important|normal|minor|wishlist
31 tags 123 moreinfo|unreproducible|wontfix|patch
32
33 * More detailed information
34
35 For a list of all bugs, see http://debbugs.gnu.org/db/pa/lemacs.html
36 This is a static page, updated once a day. There is also a dynamic
37 list, generated on request, but since there are many bug reports this
38 is slow and not recommended.
39
40 ** How do I report a bug in Emacs now?
41 The same way as you always did. Send mail to bug-gnu-emacs@gnu.org,
42 or use M-x report-emacs-bug.
43
44 The only differences are:
45
46 i) Your report will be assigned a number and generate an automatic reply.
47
48 ii) Optionally, you can set some database parameters when you first
49 report a bug (see "Setting bug parameters" below).
50
51 iii) If you want to CC: someone, use X-Debbugs-CC: (this is important;
52 see below).
53
54 Once your report is filed and assigned a number, it is sent out to the
55 bug mailing list. In some cases, it may be appropriate to just file a
56 bug, without sending out a copy. To do this, send mail to
57 quiet@debbugs.gnu.org.
58
59 ** How do I reply to an existing bug report?
60 Reply to 123@debbugs.gnu.org, replacing 123 with the number
61 of the bug you are interested in. NB this only sends mail to the
62 bug-list, it does NOT (?) send a CC to the original bug submitter.
63 So you need to explicitly CC him/her (and anyone else you like).
64
65 (Many people think the submitter SHOULD be automatically subscribed
66 to subsequent discussion, but this does not seem to be implemented.
67 See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078)
68 See also http://debbugs.gnu.org/5439
69
70 Do NOT send a separate copy to the bug list address, since this may
71 generate a new report. The only time to send mail to the bug list
72 address is to create a new report.
73
74 Gnus users can add the following to message-dont-reply-to-names;
75 similarly with Rmail and rmail-dont-reply-to-names:
76
77 "\\(emacs-pretest-bug\\|bug-gnu-emacs\\|bug-\\(e\\|gnu\\)macs\\)@gnu\\.org\\|\
78 \\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org"
79
80 The "owner@debbugs.gnu.org" entry is there because it appears in the
81 "Resent-To" header. For a long time Rmail erroneously included such
82 headers in replies. If you correspond with an Rmail user on a bug,
83 these addresses may end up in the Cc. Mailing to them does nothing
84 but create duplicates and errors. (It is possible you might want to
85 have a dialog with the owner address, outside of normal bug
86 reporting.)
87
88 ** When reporting a bug, to send a Cc to another address
89 (e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header.
90 Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a
91 mail with the bug report number in. If you do not do this, each reply
92 in the subsequent discussion will end up creating a new bug.
93 This is annoying.
94
95 If a new report contains X-Debbugs-CC in the input, this is
96 converted to a real Cc header in the output. (See Bug#1720).
97 It is also merged into the Resent-CC header (see below).
98
99 ** How does Debbugs send out mails?
100
101 The mails are sent out to the bug list by being resent. The From:
102 header is unchanged. In new reports only (at present), the To:
103 address is altered as follows. Any "bug-gnu-emacs",
104 "emacs-pretest-bug", or "submit@debbugs" address is replaced by
105 123@debbugs in the mail that gets sent out. (This also applies to any
106 Cc: header, though you should be using X-Debbugs-CC instead in new
107 reports). The original header is stored as X-Debbugs-Original-To, if
108 it was changed. Any X-Debbugs-CC is merged into the Cc.
109
110 Mails arriving at the bug list have the following Resent-* headers:
111
112 Resent-From: person who submitted the bug
113 Resent-To: owner@debbugs.gnu.org
114 Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries
115
116 The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases.
117
118 ** To not get acknowledgement mail from the tracker,
119 add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus,
120 you can add an element to gnus-posting-styles to do this automatically, eg:
121
122 ("gnu-emacs\\(-pretest\\)?-bug"
123 ("X-Debbugs-No-Ack" "yes"))
124
125 (adjust the regexp according to the name you use for the bug lists)
126
127 ** To record a bug in the tracker without sending mail to the bug list.
128 This can be useful to make a note of something discussed on
129 emacs-devel that needs fixing. In other words, this can be the
130 equivalent of adding something to FOR-RELEASE.
131
132 To: quiet@debbugs.gnu.org
133 [headers end]
134 Package: emacs
135 Version: 23.0.60
136 Severity: minor
137
138 Remember to fix FOO, as discussed on emacs-devel at http://... .
139
140 ** Not interested in tracker control messages (tags being set, etc)?
141 Discard mails matching:
142
143 ^X-Emacs-PR-Message: (transcript|closed)
144
145 ** How to avoid multiple copies of mails.
146 If you reply to reports in the normal way, this should work fine.
147 Basically, reply only to the numbered bug address (and any individual
148 people's addresses). Do not send mail direct to bug-gnu-emacs or
149 emacs-pretest-bug unless you are reporting a new bug.
150
151 ** To close bug #123 (for example), send mail
152
153 To: 123-done@debbugs.gnu.org
154
155 with a brief explanation in the body as to why the bug was closed.
156 There is no need to cc the address without the "-done" part or the
157 submitter; they get copies anyway so this will just result in more
158 duplicate mail.
159
160 ** Details of closing a bug.
161 (For information only)
162 Sending a mail to 123-done does the following:
163
164 1) Mark the bug as closed in the database.
165
166 2) Send a mail to the original submitter telling them that their bug
167 has been closed. This mail has a header:
168
169 X-Emacs-PR-Message: they-closed 123
170
171 3) Send a mail to you and to the emacs-bug-tracker list confirming
172 that the bug has been closed. This mail has a header:
173
174 X-Emacs-PR-Message: closed 123
175
176 4) Send a copy of your mail to the bug-gnu-emacs list in exactly the
177 same way as if you had sent mail to "123" (sans -done). This mail has
178 headers:
179
180 X-Emacs-PR-Message: cc-closed 123
181 Mail-Followup-To: 123@debbugs.gnu.org, ...
182
183 (This is Emacs-specific. Normally the bug list gets the same mail as in 3).
184
185 ** Setting bug parameters.
186 There are two ways to set the parameters of bugs in the database
187 (tags, severity level, etc). When you report a new bug, you can
188 provide a "pseudo-header" at the start of the report, eg:
189
190 Package: emacs
191 Version: 23.0.60
192 Severity: minor
193
194 Optionally, add a sub-package, eg Package: emacs,calendar.
195 This can include tags. Some things (e.g. submitter) don't seem to
196 work here.
197
198 Otherwise, send mail to the control server, control@debbugs.gnu.org.
199 At the start of the message body, supply the desired commands, one per
200 line:
201
202 command bug-number [arguments]
203 ...
204 quit|stop|thank|thanks|thankyou|thank you
205
206 The control server ignores anything after the last line above. So you
207 can place control commands at the beginning of a reply to a bug
208 report, and Bcc: the control server (note the commands have no effect
209 if you just send them to the bug-report number). Bcc: is better than Cc:
210 in case people use Reply-to-All in response.
211
212 Some useful control commands:
213
214 *** To reopen a closed bug:
215 reopen 123
216
217 *** Bugs can be tagged in various ways (eg wontfix, patch, etc).
218 The available tags are:
219 patch wontfix moreinfo unreproducible fixed notabug
220 See http://debbugs.gnu.org/Developer#tags
221 The list of tags can be prefixed with +, - or =, meaning to add (the
222 default), remove, or reset the tags. E.g.:
223
224 tags 123 + wontfix
225
226 ** URL shortcuts
227
228 http://debbugs.gnu.org/...
229
230 123 # given bug number
231 123;mbox=yes # mbox version of given bug
232 package # bugs in given package (don't use "emacs" - too many bugs!)
233 from:submitter@email.address
234 severity:severity # all bugs of given severity
235 tag:tag # all bugs with given tag
236
237 ** Usertags
238
239 See <http://wiki.debian.org/bugs.debian.org/usertags>
240
241 "Usertags" are very similar to tags: a set of labels that can be added
242 to a bug. There are two differences between normal tags and user tags:
243
244 1) Anyone can define any valid usertag they like. In contrast, only a
245 limited, predefined set of normal tags are available (see above).
246
247 2) A usertag is associated with a specific email address.
248
249 You set usertags in the same way as tags, by talking to the control
250 server. One difference is that you can also specify the associated
251 email address. If you don't explicitly specify an address, then it
252 will use the one from which you send the control message. The address
253 must have the form of an email address (with an "@" sign and least 4
254 characters after the "@").
255
256 *** Setting usertags
257
258 a) In a control message:
259
260 user bug-gnu-emacs@gnu.org
261 usertags 1234 any-tag-you-like
262
263 This will add a usertag "any-tag-you-like" to bug 1234. The tag will
264 be associated with the address "bug-gnu-emacs@gnu.org". If you omit
265 the first line, the tag will be associated with your email address.
266
267 The syntax of the usertags command is the same as that of tags (eg wrt
268 the optional [=+-] argument).
269
270 b) In an initial submission, in the pseudo-header:
271
272 User: bug-gnu-emacs@gnu.org
273 Usertags: a-new-tag
274
275 Again, the "User" is optional.
276
277 *** Searching by usertags
278
279 The search interface is not as advanced as for normal tags. You need
280 to construct the relevant url yourself rather than just typing in a
281 search box. The only piece you really need to add is the "users"
282 portion, the rest has the same syntax as normal.
283
284 **** To find all bugs usertagged by a given email address:
285
286 http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org
287
288 (Supposedly, the "users" field can be a comma-separated list of more
289 than one email address, but it does not seem to work for me.)
290
291 **** To find bugs tagged with a specific usertag:
292
293 This works just like a normal tags search, but with the addition of a
294 "users" field. Eg:
295
296 http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org;tag=calendar
297
298 *** To merge bugs:
299 Eg when bad replies create a bunch of new bugs for the same report.
300 Bugs must all be in the same state (e.g. same package(s) and severity
301 -- see `reassign' and `severity' below), but need not have the same
302 tags (tags are merged). E.g.:
303
304 merge 123 124 125 ...
305
306 Note that merging does not affect titles. In particular, a "retitle"
307 of merged bugs only affects individual bugs, not all of them.
308
309 *** Forcing a merge:
310 Like `merge', but bugs need not be in the same state. The packages
311 must still match though (see `reassign' below). The first one listed
312 is the master. E.g.:
313
314 forcemerge 123 124 125 ...
315
316 Note: you cannot merge with an archived bug - you must unarchive it first.
317
318 *** To unmerge bugs:
319 To disconnect a bug from all bugs it is merged with:
320
321 unmerge 123
322
323 This command accepts only one bug number.
324
325 *** To clone bugs:
326 Useful when one report refers to more than one bug.
327
328 clone 123 -1 [-2 ...]
329 retitle -1 second bug
330 retitle -2 third bug
331
332 The negative numbers provide a way to refer to the cloned bugs (which
333 will be assigned proper numbers).
334
335 NB you cannot clone a merged bug. You'd think that trying to do so
336 would just give you an unmerged copy of the specified bug number, but no:
337
338 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474742
339
340 You must unmerge, clone, then re-merge.
341
342 *** To set severity:
343 severity 123 critical|grave|serious|important|normal|minor|wishlist
344
345 See http://debbugs.gnu.org/Developer#severities for the meanings.
346
347 *** To set the owner of a bug:
348 owner 123 A Hacker <none@example.com>
349
350 The shorthand `!' means your own address.
351
352 *** To remove the owner of a bug:
353 noowner 123
354
355 *** To mark a bug as fixed in a particular version:
356 fixed 123 23.0.60
357
358 *** To remove a "fixed" mark:
359 notfixed 123 23.0.60
360
361 *** To assign or reassign a bug to a package or list of packages:
362 reassign 1234 emacs,cc-mode
363
364 ** To remove spam from the tracker, move it to the `spam' pseudo-package:
365 reassign 123 spam
366
367 ** To change the title of a bug:
368 retitle 123 Some New Title
369
370 ** To change the submitter address:
371 submitter 123 none@example.com
372
373 Note that it does not seem to work to specify "Submitter:" in the
374 pseudo-header when first reporting a bug.
375
376 ** How does archiving work?
377 You can still send mail to a bug after it is closed. After 28 days with
378 no activity, the bug is archived, at which point no more changes can
379 be made. If you try to send mail to the bug after that (or merge with
380 it), it will be rejected. To make any changes, you must unarchive it first:
381
382 unarchive 123
383
384 The bug will be re-archived after the next 28 day period of no activity.
385
386 ** The web-page with the list of bugs is slow to load
387
388 It's a function of the number of displayed bugs. You can speed things
389 up by only looking at the newest 100 bugs:
390 http://debbugs.gnu.org/cgi-bin/pkgreport.cgi?newest=100;package=emacs
391
392 Or use the static index:
393 http://debbugs.gnu.org/db/ix/full.html
394
395 ** ChangeLog issues
396
397 *** When you fix a bug, it can be helpful to put the bug number in the
398 ChangeLog entry, for example:
399
400 * foo.el (foofunc): Fix the `foo' case. (Bug#123)
401
402 Then the relevant bug can be found for easy reference. If it's an
403 obvious fix (e.g. a typo), there's no need to clutter the log with the
404 bug number.
405
406 Similarly, when you close a bug, it can be helpful to include the
407 relevant ChangeLog entry in the message to the bug tracker, so people
408 can see exactly what the fix was.
409
410 *** bug-reference-mode
411
412 Activate `bug-reference-mode' in ChangeLogs to get clickable links to
413 the bug web-pages.
414
415 *** Debian stuff
416
417 http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html
418
419 ** Bazaar stuff
420
421 *** You can use `bzr commit --fixes emacs:123' to mark that a commit fixes
422 Emacs bug 123. You will first need to add a line to your bazaar.conf
423 (untested):
424
425 bugtracker_emacs_url = http://debbugs.gnu.org/{id}
426
427 Note that all this does is add some metadata to the commit, it doesn't
428 actually mark the bug as closed in the tracker.
429
430 ** Gnus-specific voodoo
431
432 *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group
433
434 *** If the above is not available:
435 (add-hook 'gnus-article-mode-hook
436 (lambda ()
437 (setq bug-reference-url-format "http://debbugs.gnu.org/%s")
438 (bug-reference-mode 1)))
439
440 and you can click on the bug number in the subject header.
441
442
443 * Technical Notes
444
445 The following are technical notes on how it works. These are just for
446 reference, you don't need to read these as a user of the system.
447
448 Getting mail from the Emacs bug list into the tracker requires the
449 assistance of sysadmin at gnu.org. The test tracker set-up was, I
450 think, [gnu.org #359140]:
451 http://lists.gnu.org/archive/html/savannah-hackers/2008-03/msg00074.html
452 http://lists.gnu.org/archive/html/savannah-hackers/2008-04/msg00034.html
453
454 ** The debbugs.gnu.org setup was handled in [gnu.org #510605].
455 There are two pieces (replace AT with @ in the following):
456
457 i) fencepost has an /etc/aliases entry:
458 emacs-pretest-bug: submit AT debbugs.gnu.org
459
460 ii) An exim router:
461 emacsbugs_router:
462 driver = redirect
463 senders = !Debian-debbugs AT debbugs.gnu.org
464 local_parts = bug-gnu-emacs
465 domains = gnu.org
466 data = submit AT debbugs.gnu.org
467
468 This says, for mail arriving at bug-gnu-emacs, only allow it through
469 to the list if it was sent from debbugs.gnu.org. Otherwise, send
470 it to the submit address at the bug-tracker.
471
472 FIXME There's probably an issue with the mail-news gateway here that
473 still needs to be addressed (bug#936).
474
475 ** fencepost's /etc/exim4/local_domains configuration needs a line
476 !debbugs.gnu.org adding [gnu.org #503532]. Otherwise people on
477 fencepost can't report bugs, since *.gnu.org addresses are assumed to
478 be handled locally on fencepost, unless otherwise specified.
479
480 ** All mail arriving at debbugs.gnu.org is first run through SpamAssassin.
481 Obvious spam is rejected, the rest is sent on to the moderated list
482 debbugs-submit. Approved mail is passed on to the tracker.
483 (Note this means that messages may appear out of sequence in the
484 tracker, since mail from whitelisted senders goes straight through.)
485
486 NOTE: An alternative to this would be to use listhelper AT nongnu.org
487 as a moderator address. Eg the emacs-bug-tracker list uses this.
488 It does basic spam processing on the moderator requests and
489 automatically rejects the obviously bogus ones. Someone still has to
490 accept the good ones though. The advantage of this would not be having
491 to run and tune our own spam filter. See
492 http://savannah.nongnu.org/projects/listhelper
493
494 An "X-Debbugs-Envelope-To" header is used to keep track of where the
495 mail was actually bound for:
496 http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg01211.html
497
498 ** Mailing list recipient/sender filters.
499 The following mailman filters are useful to stop messages being
500 needlessly held for moderation:
501
502 *** debbugs-submit
503 (quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com)
504 [0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com)
505 (bug-gnu-emacs|emacs-pretest-bug|bug-(e|gnu)macs)@gnu\.org
506
507 bug-emacs and bug-gnumacs are lesser-used aliases from fencepost's
508 /etc/aliases file.
509
510 *** emacs-bug-tracker
511 sender: bug-gnu-emacs AT gnu.org
512 recipient: emacs-bug-tracker AT debbugs\.gnu\.org
513
514 The latter is because that is the address that debbugs actually sends to.
515 An /etc/aliases entry redirects it to the real emacs-bug-tracker address.
516
517 ** Administrivia
518
519 The debbugs-submit list should have the administrivia option off,
520 else it can by mistake filter out requests to subscribe to bugs.
521 But, this feature doesn't work anyway (see bug#5439).
522
523 ** How to test changes
524
525 Add an entry to /etc/debbugs/Maintainers like:
526
527 mytest my.email.address
528
529 Then if you do all your testing with 'Package: mytest', the resulting
530 mails should only go to your email address.