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