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