summaryrefslogtreecommitdiff
path: root/doc/contributing.texi
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-09-11 22:31:56 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-09-17 16:42:03 -0400
commitfc1b4756e36857e66986a30a6652ee988f8f30fd (patch)
tree0c759019be48cb58f9dfce779bfb9686ce67b75c /doc/contributing.texi
parentf1df78959a18aa1aed07e885051514938bd1fa92 (diff)
.dir-locals.el: Update bug-reference configuration and document it.
(nil) <bug-reference-url-format>: Update URL. Add comment. * doc/contributing.texi (The Perfect Setup): New "Viewing bugs within Emacs" subsection. Co-authored-by: Brian Cully <bjc@spork.org>
Diffstat (limited to 'doc/contributing.texi')
-rw-r--r--doc/contributing.texi64
1 files changed, 64 insertions, 0 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi
index a0da871f1a..156a6cb19e 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -379,6 +379,70 @@ copyright-update}. If you want to do it automatically after each buffer
save then add @code{(add-hook 'after-save-hook 'copyright-update)} in
Emacs.
+@subsection Viewing Bugs within Emacs
+
+Emacs has a nice minor mode called @code{bug-reference}, which, when
+combined with @samp{emacs-debbugs} (the Emacs package), can be used to
+open links such as @samp{<https://bugs.gnu.org/58697>} or
+@samp{<https://issues.guix.gnu.org/58697>} as bug report buffers. From
+there you can easily consult the email thread via the Gnus interface,
+reply or modify the bug status, all without leaving the comfort of
+Emacs! Below is a sample configuration to add to your @file{~/.emacs}
+configuration file:
+
+@lisp
+;;; Bug references.
+(add-hook 'prog-mode-hook #'bug-reference-prog-mode)
+(add-hook 'gnus-mode-hook #'bug-reference-mode)
+(add-hook 'erc-mode-hook #'bug-reference-mode)
+(add-hook 'bug-reference-mode-hook 'debbugs-browse-mode)
+(add-hook 'bug-reference-prog-mode-hook 'debbugs-browse-mode)
+(add-hook 'gnus-summary-mode-hook 'bug-reference-mode)
+(add-hook 'gnus-article-mode-hook 'bug-reference-mode)
+
+;;; This extends the default expression (the top-most, first expression
+;;; provided to 'or') to also match URLs such as
+;;; <https://issues.guix.gnu.org/58697> or <https://bugs.gnu.org/58697>.
+;;; It is also extended to detect "Fixes: #NNNNN" git trailers.
+(setq bug-reference-bug-regexp
+ (rx (group (or (seq word-boundary
+ (or (seq (char "Bb") "ug"
+ (zero-or-one " ")
+ (zero-or-one "#"))
+ (seq (char "Pp") "atch"
+ (zero-or-one " ")
+ "#")
+ (seq (char "Ff") "ixes"
+ (zero-or-one ":")
+ (zero-or-one " ") "#")
+ (seq "RFE"
+ (zero-or-one " ") "#")
+ (seq "PR "
+ (one-or-more (char "a-z+-")) "/"))
+ (group (one-or-more (char "0-9"))
+ (zero-or-one
+ (seq "#" (one-or-more
+ (char "0-9"))))))
+ (seq "<https://bugs.gnu.org/"
+ (group-n 2 (one-or-more (char "0-9")))
+ ">")))))
+
+;; The following allows Emacs Debbugs user to open the issue directly within
+;; Emacs.
+(setq debbugs-browse-url-regexp
+ (rx line-start
+ "http" (zero-or-one "s") "://"
+ (or "debbugs" "issues.guix" "bugs")
+ ".gnu.org" (one-or-more "/")
+ (group (zero-or-one "cgi/bugreport.cgi?bug="))
+ (group-n 3 (one-or-more digit))
+ line-end))
+@end lisp
+
+For more information, refer to @ref{Bug Reference,,, emacs, The GNU
+Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User
+Guide}.
+
@node Packaging Guidelines
@section Packaging Guidelines