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