]> code.delx.au - gnu-emacs-elpa/blob - packages/debbugs/debbugs-ug.texi
Merge commit '97eaa5778ce0cd596a0807ef2e676d2681aabf84'
[gnu-emacs-elpa] / packages / debbugs / debbugs-ug.texi
1 \input texinfo
2 @setfilename debbugs-ug.info
3 @settitle Debbugs User Guide
4
5 @dircategory Emacs
6 @direntry
7 * Debbugs UG: (debbugs-ug). Debbugs User Interface in Emacs.
8 @end direntry
9
10 @copying
11 Copyright @copyright{} 2015-2016 Free Software Foundation, Inc.
12
13 @quotation
14 Permission is granted to copy, distribute and/or modify this document
15 under the terms of the GNU Free Documentation License, Version 1.2 or
16 any later version published by the Free Software Foundation; with no
17 Invariant Sections, with the Front-Cover, or Back-Cover Texts. A copy of
18 the license is included in the section entitled ``GNU Free Documentation
19 License'' in the Emacs manual.
20
21 This document is part of a collection distributed under the GNU Free
22 Documentation License. If you want to distribute this document
23 separately from the collection, you can do so by adding a copy of the
24 license to the document, as described in section 6 of the license.
25
26 All Emacs Lisp code contained in this document may be used, distributed,
27 and modified without restriction.
28 @end quotation
29 @end copying
30
31 @titlepage
32 @title Debbugs User Guide
33 @author by Michael Albinus
34 @page
35 @insertcopying
36 @end titlepage
37
38 @contents
39
40
41 @node Top
42 @top Debbugs User Guide
43
44 Debbugs is a bugtracking system (BTS) that was initially written for
45 the Debian project but currently used also by the GNU project. The
46 main distinctive feature of Debbugs is that it's mostly email-based.
47 All actions on bug reports: opening, closing, changing the status,
48 commenting, forwarding are performed via email by sending specially
49 composed letters to the particular email addresses. However,
50 searching the bug reports, querying bug report status and viewing
51 comments have been web-based for a long time. To overcome this
52 inconvenience the Debbugs/SOAP service was introduced.
53
54 Based on the Debbugs/SOAP service, frontends are written which offer
55 handling of bugs inside Emacs. These frontends are restricted to the
56 GNU Debbugs server. Bugs are presented either as tabulated list
57 (@code{debbugs-gnu}) or as @code{org-mode} TODO list
58 (@code{debbugs-org}, @pxref{Top, , Org Mode, org}). As backend they
59 use the @code{debbugs} Emacs library (@pxref{Top, , Debbugs
60 Programmer's Manual, debbugs}).
61
62 @menu
63 * Retrieving Bugs:: How to retrieve bugs.
64 * Searching Bugs:: How to search in the debbugs database.
65 * Layout:: How the results are presented.
66 * Minor Mode:: How to use browse bug URLs.
67
68 * Command Index:: Debbugs commands.
69 * Variable Index:: User options and variables.
70 * Key Index:: Keyboard strokes on bug report buffers.
71 @end menu
72
73
74 @node Retrieving Bugs
75 @chapter Retrieving Bugs
76
77 Bugs are retrieved by the @code{debbugs-gnu} or @code{debbugs-org}
78 commands. In their simple version, they retrieve just bugs for the
79 @code{"emacs"} package on the GNU Debbugs server, filtered by bug
80 severities. Further filtering is possible when the commands are
81 called with a prefix.
82
83 When the bug numbers to be retrieved are known, the commands
84 @code{debbugs-gnu-bugs} or @code{debbugs-org-bugs} are applicable.
85
86
87 @deffn {Command} debbugs-gnu severities &optional packages archivedp suppress tags
88 @deffnx {Command} debbugs-org severities &optional packages archivedp suppress tags
89
90 These commands retrieve bug reports from the GNU Debbugs server.
91 @code{debbugs-gnu} returns a tabulated list, and @code{debbugs-org}
92 returns a list of TODO items in @code{org-mode}. In order not to
93 stress the GNU Debbugs server, the bugs are retrieved in chunks of 500
94 bugs. However, the bug report buffer shows all retrieved bugs then,
95 in reverse bug number order.
96
97 @vindex debbugs-gnu-all-severities
98 @var{severities} is a list of strings which filter for the severities
99 of the bugs to be retrieved. Valid severities are @code{"serious"},
100 @code{"important"}, @code{"normal"}, @code{"minor"} and
101 @code{"wishlist"} (see also the constant
102 @code{debbugs-gnu-all-severities}). If the list is empty, there is no
103 filtering with respect to severities. The keyword @code{"tagged"},
104 which is also possible, is not a severity in the GNU Debbugs server
105 but allows to restrict the result to bugs with a given user tag.
106
107 @vindex debbugs-gnu-all-packages
108 @var{packages}, also a list of strings, point to the defined software
109 packages on the GNU Debbugs server which shall be taken into account.
110 The existing package names are compiled into the constant
111 @code{debbugs-gnu-all-packages}.
112
113 @var{archivedp}, if non-@code{nil}, extends the result also on
114 archived bugs on the GNU Debbugs server.
115
116 @vindex debbugs-gnu-default-suppress-bugs
117 @var{suppress} shall also distinct between @code{nil} and
118 non-@code{nil}. When non-@code{nil}, closed bugs are suppressed from
119 being retrieved from the Debbugs server. Which bugs are regarded as
120 suppressed is configured in the customer option
121 @code{debbugs-gnu-suppress-bugs}. Per default, bugs marked as
122 @code{"done"} are suppressed from being retrieved.
123
124 When @var{severities} contains the severity @code{"tagged"},
125 @var{tags} is consulted in order to restrict the result on bugs which
126 are tagged with one of the strings of the list @var{tags}. This list
127 can also be empty; in this case locally tagged bugs are included into
128 the results.
129
130 Called interactively, the commands require just the @var{severities}
131 and the @var{tags} (if @var{severities} includes @code{"tagged"}). In
132 order to provide the other arguments interactively, the commands must
133 be called with a prefix, like @kbd{C-u M-x debbugs-gnu}. In the
134 minibuffer, lists must be entered comma-separated.
135
136 @vindex debbugs-gnu-default-severities
137 @vindex debbugs-gnu-default-packages
138 Default values for interactive use could be configured in the customer
139 options @code{debbugs-gnu-default-severities} and
140 @code{debbugs-gnu-default-packages}.
141
142 @ref{Layout} for the presentation of the results.
143
144 @end deffn
145
146
147 @deffn {Command} debbugs-gnu-bugs &rest bugs
148 @deffnx {Command} debbugs-org-bugs &rest bugs
149
150 The commands @code{debbugs-gnu-bugs} and @code{debbugs-org-bugs} show
151 bugs specified by their bug number. Interactively, the bug numbers
152 must be entered as comma-separated list.
153
154 @ref{Layout} for the presentation of the results.
155
156 @end deffn
157
158
159 @node Searching Bugs
160 @chapter Searching in the Debbugs Database.
161
162 The GNU Debbugs server allows full text search in the database. It
163 uses a
164 @uref{http://fallabs.com/hyperestraier/uguide-en.html#searchcond,
165 HyperEstraier based search engine}@footnote{This has been added to the
166 Debbugs/SOAP backend of the GNU Debbugs server only.}.
167
168 @deffn {Command} debbugs-gnu-search
169 @deffnx {Command} debbugs-org-search
170
171 These both commands are completely interactive. They ask for a
172 @code{"search phrase"} for the full text search. It is just a string
173 which contains the words to be searched for, combined by operators
174 like AND, ANDNOT and OR. If there is no operator between the words,
175 AND is used by default.
176
177 Wild card searches are also supported. It can be used for forward
178 match search and backward match search. For example, "[BW] euro"
179 matches words which begin with "euro". "[EW] shere" matches words
180 which end with "sphere". Moreover, regular expressions are also
181 supported. For example, "[RX] ^inter.*al$" matches words which begin
182 with "inter" and end with "al".@footnote{Simplified forms, as
183 described in the Hyperestraier User Guide, are not supported.}
184
185 While the words to be searched for are case insensitive, the operators
186 must be specified case sensitive.
187
188 While the search for the phrase is performed only in the bodies of the
189 messages belonging to a bug report, it is also possible to
190 discriminate the search to further bug attributes. The commands ask
191 for such key-value pairs, until an empty key is returned. Possible
192 attributes are
193
194 @table @samp
195 @item severity
196 A comma-separated list of bug severities, @xref{Retrieving Bugs}.
197
198 @item package
199 A comma-separated list of defined software packages on the GNU Debbugs
200 server, @xref{Retrieving Bugs}.
201
202 @item tags
203 A comma-separated list of defined user tags.
204
205 @item submitter
206 The email address of the bug submitter.
207
208 @item date
209 A time period the bug has been in which the bug has been submitted or
210 modified.
211
212 @item subject
213 Word(s) the subject of the bug report contains.
214
215 @item status
216 The status of the bug report. Valid values are "done", "forwarded"
217 and "open".
218 @end table
219
220 It is also possible to apply these commands with an empty search
221 phrase. In this case, the GNU Debbugs server is searched only for
222 bugs which fulfill the given attributes. The attributes to be applied
223 are the same as already described, plus
224
225 @table @samp
226 @item archive
227 Whether archived bugs shall be searched (no value to be entered).
228
229 @item src
230 Bugs which belong to a given source, if that attribute has set.
231
232 @item tag
233 An arbitrary string the bug is annotated with. Usually, this is the
234 same as the status mentioned above.
235
236 @item owner
237 @itemx maint
238 @itemx correspondent
239 The email address of the bug's owner, maintainer, or correspondent
240 (somebody who has participated in bug messages).
241
242 @item log_modified
243 @itemx last_modified
244 @itemx found_date
245 @itemx fixed_date
246 The date of the last update, or the date of the bug report / bug fix.
247
248 @item unarchived
249 The date the bug has been unarchived, if ever.
250
251 @item done
252 The email address of the worker who has closed the bug (if done).
253
254 @item forwarded
255 A URL or an email address.
256
257 @item msgid
258 The message id of the initial bug report.
259
260 @item summary
261 The summary of the bug report.
262 @end table
263
264 Not all of these attributes could be queried on the GNU Debbugs server
265 via the Debbugs/SOAP backend. In this case, the results of a query
266 are discriminated on the client side, which is indicated by the string
267 "(client-side filter)" in the minibuffer after the attribute name.
268 @end deffn
269
270
271 @node Layout
272 @chapter Layout
273
274 The commands described in the previous chapters generate (a) report
275 buffer(s) applicable for navigation. @code{debbugs-gnu-*} return a
276 tabulated list, and @code{debbugs-org-*} return a list of TODO items
277 in @code{org-mode}.
278
279 @menu
280 * Tabulated Lists:: Tabulated Lists.
281 * TODO Items:: TODO Items.
282 * Control Messages:: Control Messages.
283 @end menu
284
285
286 @node Tabulated Lists
287 @section Tabulated Lists
288
289 A tabulated list of bug reports consist of four columns for every bug
290 entry: @code{Id} (the bug number), @code{State} (some bug attributes),
291 @code{Submitter} (the name of the bug submitter), and @code{Title}
292 (the bug subject). Per default the bugs are sorted descending by
293 @code{Id}; this could be changed by clicking in the headline.
294
295 Different foreground colours present further information on the bug
296 report. If the bug number uses a red colour
297 (@code{debbugs-gnu-tagged}), the bug has been tagged locally. The
298 same face is used to mark bugs in the submitter or title column, when
299 the bug has been reported / is maintained by the user.
300
301 The bug state could appear in different colours: red
302 (@code{debbugs-gnu-new}, nobody has answered yet to this bug),
303 ForestGreen (@code{debbugs-gnu-handled}, the bug has been modified
304 recently), MidnightBlue (@code{debbugs-gnu-pending}, the bug is
305 pending), orange (@code{debbugs-gnu-stale}, the bug has not been
306 touched for a while), and DarkGrey (@code{debbugs-gnu-done}, the bug
307 is closed). Archived bugs are shown with inverse face
308 (@code{debbugs-gnu-archived}).
309
310 The bug report buffers have enabled the minor
311 @code{debbugs-gnu-mode}. This enables the following key strokes:
312
313 @multitable @columnfractions .20 .80
314
315 @item
316 @kindex @kbd{@key{RET}}
317 @kbd{@key{RET}} @*
318 @kindex @kbd{@key{mouse-1}}
319 @kbd{@key{mouse-1}} @*
320 @kindex @kbd{@key{mouse-2}}
321 @kbd{@key{mouse-2}} @tab
322 @code{debbugs-gnu-select-report} @*
323 Show the email messages that discuss the bug.
324
325 @* @item
326 @kindex @kbd{d}
327 @kbd{d} @tab
328 @code{debbugs-gnu-display-status} @*
329 Show all bug attributes.
330
331 @item
332 @kindex @kbd{/}
333 @kbd{/} @tab
334 @code{debbugs-gnu-narrow-to-status} @*
335 Narrow the list of bugs to the bugs that match the given regex in
336 @code{State}, @code{Submitter} or @code{Title}.
337
338 @item
339 @kindex @kbd{R}
340 @kbd{R} @tab
341 @code{debbugs-gnu-show-all-blocking-reports} @*
342 Narrow the list of bug reports to the ones that are blocking the
343 current release.
344
345 @item
346 @kindex @kbd{w}
347 @kbd{w} @tab
348 @code{debbugs-gnu-widen} @*
349 Restore the full list again after narrowing.
350
351 @item
352 @kindex @kbd{g}
353 @kbd{g} @tab
354 @code{debbugs-gnu-rescan} @*
355 Reload all bugs. With a prefix argument @kbd{C-u}, the bug status
356 cache is disabled, and all bug reports are retrieved from the GNU
357 Debbugs server.
358
359 @item
360 @kindex @kbd{B}
361 @kbd{B} @*
362 @kindex @kbd{b}
363 @kbd{b} @tab
364 @code{debbugs-gnu-show-blocking-reports} @*
365 @code{debbugs-gnu-show-blocked-by-reports} @*
366 Show all bug reports which are blocking / blocked by this bug.
367
368 @item
369 @kindex @kbd{s}
370 @kbd{s} @tab
371 @code{debbugs-gnu-toggle-sort} @*
372 Toggle sorting order of bugs.
373
374 @item
375 @kindex @kbd{t}
376 @kbd{t} @tab
377 @code{debbugs-gnu-toggle-tag} @*
378 Toggle local tag of bugs.
379
380 @item
381 @kindex @kbd{x}
382 @kbd{x} @tab
383 @code{debbugs-gnu-toggle-suppress} @*
384 Toggle showing of closed bugs.
385
386 @item
387 @kindex @kbd{C}
388 @kbd{C} @tab
389 @code{debbugs-gnu-send-control-message} @*
390 Send a control message for this bug, @ref{Control Messages}.
391
392 @end multitable
393
394 @vindex debbugs-gnu-mail-backend
395 The user option @code{debbugs-gnu-mail-backend} controls the
396 presentation of email messages produced by typing @kbd{@key{RET}} or
397 by clicking the mouse on a bug: if its value is @code{gnus}, the
398 default, a GNUS ephemeral group for that bug will be shown; if its
399 value is @code{rmail}, the command will present an Rmail folder
400 instead.
401
402
403 @node TODO Items
404 @section TODO Items
405
406 TODO items are offered as usual in @code{org-mode}. The bug
407 attributes are mapped onto properties of these items. They can be
408 shown by the usual navigation in @code{org-mode}.
409
410 Bug severities are mapped onto org severities, see
411 @code{debbugs-org-severity-priority}.
412
413 The bug report buffers have enabled the minor
414 @code{debbugs-org-mode}. This enables the following key strokes:
415
416 @multitable {@kbd{C-c # C}} {Some very very very long long text Some very very very long long text Some very very very long long text}
417
418 @item
419 @kindex @kbd{@key{TAB}}
420 @kbd{@key{TAB}} @tab
421 @code{org-cycle} @*
422 Outline the bug report attributes in @code{org-mode}.
423
424 @item
425 @kindex @kbd{C-c # d}
426 @kbd{C-c # d} @tab
427 @code{debbugs-gnu-display-status} @*
428 Show all bug attributes.
429
430 @item
431 @kindex @kbd{C-c # t}
432 @kbd{C-c # t} @tab
433 @code{debbugs-gnu-toggle-tag} @*
434 Toggle local tag of bugs.
435
436 @item
437 @kindex @kbd{C-c # C}
438 @kbd{C-c # C} @tab
439 @code{debbugs-gnu-send-control-message} @*
440 Send a control message for this bug, @ref{Control Messages}.
441
442 @end multitable
443
444 When the bug attributes are shown by @code{org-cycle}, there is a link
445 @code{Messages} which opens a GNUS ephemeral group for that bug.@c (@pxref{xxx}).
446
447
448 @node Control Messages
449 @section Control Messages
450
451 Debbugs control messages are sent by email to the GNU Debbugs control
452 server. Their format is described in
453 @uref{http://debbugs.gnu.org/server-control.html}.
454
455 A control message can be initiated in the tabulated list of bugs, in
456 the list of org TODO items, or in the GNUS ephemeral group or Rmail
457 folder opened for the messages belonging to a given bug. Control
458 messages can be sent to unarchived bugs only, in case a bug is
459 archived the control message @samp{unarchive} must be sent first.
460
461 In the minibuffer, the following control messages can be requested
462 (assuming that 12345 is the bug the control message is intended for).
463 The strings show the exact format of the control messages.
464
465 @table @samp
466 @item block
467 @itemx unblock
468 "block|unblock 12345 by 54321"
469
470 The second bug number is read interactively. It could be also a list
471 of comma-separated bug numbers.
472
473 @item close
474 "close 12345 25.1"
475
476 The second argument, the Emacs version, is read interactively.
477
478 @item confirmed
479 @itemx fixed
480 @itemx help
481 @itemx moreinfo
482 @itemx notabug
483 @itemx patch
484 @itemx pending
485 @itemx security
486 @itemx unreproducible
487 @itemx wontfix
488 "tags 12345 confirmed|fixed|help|moreinfo|notabug"
489
490 "tags 12345 patch|pending|security|unreproducible|wontfix"
491
492 @item done
493 @itemx donenotabug
494 @itemx doneunreproducible
495 @itemx donewontfix
496 "tags 12345 fixed|notabug|unreproducible|wontfix" @*
497 "close 12345 25.1"
498
499 The second argument in the close message, the Emacs version, is read
500 interactively.
501
502 @item forcemerge
503 @itemx merge
504 "forcemerge|merge 12345 54321"
505
506 The second bug number is read interactively.
507
508 @item invalid
509 "tags 12345 notabug" @*
510 "tags 12345 wontfix" @*
511 "close 12345"
512
513 @item noowner
514 "noowner 12345"
515
516 @item owner
517 "owner 12345 !"
518
519 @item reassign
520 "reassign 12345 @var{package}"
521
522 The package name on the GNU Debbugs server is read interactively.
523
524 @item reopen
525 "reopen 12345"
526
527 @item retitle
528 "retitle 12345 @var{title}"
529
530 The new bug title is read interactively.
531
532 @item serious
533 @itemx important
534 @itemx normal
535 @itemx minor
536 @itemx wishlist
537 "severity 12345 serious|important|normal|minor|wishlist"
538
539 @item unarchive
540 "unarchive 12345"
541
542 @item unmerge
543 "unmerge 12345"
544
545 @item usertag
546 "user @var{username}" @*
547 "usertag 12345 @var{tag}"
548
549 The username, read interactively, is either a package name or an email
550 address. The tag to be set is also read interactively.
551 @end table
552
553
554 @node Minor Mode
555 @chapter Minor Mode
556
557 Emacs uses @file{bug-reference.el} for adding hyperlinks to bugs in
558 files like @file{ChangeLog}, or in commentary sections of other files.
559 The reference to such bugs have a specialized format,
560 @uref{Bug#12345}. The hyperlinks are implemented as minor modes
561 @code{bug-reference-mode} and @code{bug-reference-prog-mode}.
562
563 @findex debbugs-browse-mode
564 @vindex debbugs-browse-function
565 This package adds a new minor mode @code{debbugs-browse-mode} on top
566 of them. Instead of using the default built-in Emacs browser for a
567 given bug reference, it opens a corresponding bug report buffer. The
568 customer option @code{debbugs-browse-function} controls, whether
569 @code{debbugs-gnu-bugs} or @code{debbugs-org-bugs} is called.
570
571 This minor mode is applicable for all URLs, not only bug references.
572 Any URL with the format @uref{http://debbugs.gnu.org/12345} will be
573 shown in a bug report buffer, when @code{debbugs-browse-mode} is
574 enabled.
575
576
577 @node Command Index
578 @unnumbered Command Index
579 @printindex fn
580
581
582 @node Variable Index
583 @unnumbered Variable Index
584 @printindex vr
585
586
587 @node Key Index
588 @unnumbered Key Index
589 @printindex ky
590
591 @bye
592
593 @c Local Variables:
594 @c bug-reference-url-format: "http://debbugs.gnu.org/%s"
595 @c eval: (bug-reference-mode)
596 @c eval: (debbugs-browse-mode)
597 @c End: