Subject: [PATCH] new functions 'debbugs-gnu-my-open-bugs' and 'debbugs-gnu-guix-search'.

From: Joshua Branson <[email-masked]>
Date: Wed, 5 Oct 2022 12:41:32 -0400

* debbugs-gnu.el (debbugs-gnu-my-open-bugs): new function.
* debbugs-org.el (debbugs-org-my-open-bugs): new function.
* debbugs-guix.el (debbugs-gnu-guix-search): new function.
* debugs-ug.texi (debbugs-gnu-my-open-bugs,
debbugs-gnu-guix-search, debbugs-org-my-open-bugs): added
documentation for the new functions.
---
 debbugs-gnu.el  | 17 +++++++++++++++++
 debbugs-guix.el | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
 debbugs-org.el  | 16 ++++++++++++++++
 debbugs-ug.texi | 22 ++++++++++++++++++++-
 4 files changed, 105 insertions(+), 1 deletion(-)
 create mode 100644 debbugs-guix.el

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index e6629156c1..bc6417c5f5 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -164,6 +164,14 @@
 ;; presented, and in the latter case the last 10 bugs are shown,
 ;; counting from the highest bug number in the repository.
 
+;; M-x debbugs-gnu-my-open-bugs
+;;
+;; It is a good idea to maintain and eventually close your open bug
+;; reports.  The function 'debbugs-gnu-my-open-bugs' helps you do
+;; this, by retrieving open bug reports, in which you are the
+;; submitter.  This function assumes that you have defined the
+;; variable 'user-mail-address'.
+
 ;; For posting commit to bugs, or constructing a bug closing message
 ;; based on a pushed commit, use the command
 ;;
@@ -827,6 +835,13 @@ Shall be bound in `debbugs-org-*' functions.")
     (when (called-interactively-p 'interactive)
       (message "Query finished"))))
 
+;;;###autoload
+(defun debbugs-gnu-my-open-bugs ()
+  "Retrieve the open bugs, that you submitted.  This function assumes the variable
+'user-mail-address' is defined."
+  (interactive)
+  (apply #'debbugs-gnu-bugs (debbugs-get-bugs :submitter "me" :status "open")))
+
 (defun debbugs-gnu-get-bugs (query)
   "Retrieve bug numbers from debbugs.gnu.org according search criteria."
   (let* ((debbugs-port "gnu.org")
@@ -2479,6 +2494,8 @@ or bug ranges, with default to `debbugs-gnu-default-bug-number-list'."
   (when (called-interactively-p 'interactive)
     (message "Retrieving bugs finished")))
 
+(defalias 'debbugs-gnu-get-bug-by-id 'debbugs-gnu-bugs)
+
 (defcustom debbugs-gnu-trunk-directory "~/src/emacs/trunk/"
   "The directory where the main source tree lives."
   :type 'directory
diff --git a/debbugs-guix.el b/debbugs-guix.el
new file mode 100644
index 0000000000..c8d6b281f9
--- /dev/null
+++ b/debbugs-guix.el
@@ -0,0 +1,51 @@
+;;; debbugs-guix.el Guix Specific Debbugs Functions -*- lexical-binding: t; -*-
+;;
+;; Copyright (C) 2011-2022 Free Software Foundation, Inc.
+
+;; Author: Joshua Branson <[email-masked]>
+;; Keywords: comm, hypermedia, maint
+;; Package: debbugs
+
+;; This file is not part of GNU Emacs.
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; By default, debbugs-gnu-search searches for open and closed bugs of
+;; all GNU packages, which can make searching a little slow.  To
+;; remedy this situation, this file provides the function
+;; 'debbugs-gnu-guix-search', which search for open bugs that relate
+;; to the GNU guix.
+;;
+;;; Code:
+
+;;;###autoload
+(defun debbugs-gnu-guix-search ()
+  "Search for open guix bugs and patches."
+  (interactive)
+  (debbugs-gnu-search (read-string "Search String: ") '((pending . "pending"))
+                      nil '("guix" "guix-patches") nil))
+
+;;;###autoload
+(defun debbugs-org-guix-search ()
+  "Search for open guix bugs and patches and display the results in an org
+ buffer."
+  (interactive)
+  (let ((debbugs-gnu-show-reports-function #'debbugs-org-show-reports))
+    (debbugs-gnu-search (read-string "Search String: ") '((pending . "pending"))
+                        nil '("guix" "guix-patches") nil)))
+
+(provide 'debbugs-guix)
+;;; debbugs-guix.el ends here
diff --git a/debbugs-org.el b/debbugs-org.el
index c4343ecd8e..c62ffc0396 100644
--- a/debbugs-org.el
+++ b/debbugs-org.el
@@ -114,6 +114,14 @@
 ;; presented, and in the latter case the last 10 bugs are shown,
 ;; counting from the highest bug number in the repository.
 
+;; M-x debbugs-org-my-open-bugs
+;;
+;; It is a good idea to maintain and eventually close your open bug
+;; reports.  The function 'debbugs-org-my-open-bugs' helps you do
+;; this, by retrieving open bug reports, in which you are the
+;; submitter.  This function assumes that you have defined the
+;; variable 'user-mail-address'.
+
 ;;; Code:
 
 (require 'debbugs-gnu)
@@ -352,6 +360,14 @@ or bug ranges, with default to `debbugs-gnu-default-bug-number-list'."
   (let ((debbugs-gnu-show-reports-function #'debbugs-org-show-reports))
     (call-interactively #'debbugs-gnu-bugs)))
 
+;;;###autoload
+(defun debbugs-org-my-open-bugs ()
+  "Retrieve the open bugs, that you submitted.  This function assumes the variable
+'user-mail-address' is defined."
+  (interactive)
+  (let ((debbugs-gnu-show-reports-function #'debbugs-org-show-reports))
+    (apply #'debbugs-gnu-bugs (debbugs-get-bugs :submitter "me" :status "open"))))
+
 ;; TODO
 
 ;; - Make headline customizable.
diff --git a/debbugs-ug.texi b/debbugs-ug.texi
index f1af2a5e6f..0f0823f722 100644
--- a/debbugs-ug.texi
+++ b/debbugs-ug.texi
@@ -206,6 +206,17 @@ of bugs you are currently working on.
 @ref{Presenting Bugs} for the presentation of the results.
 @end deffn
 
+@deffn  {Command} debbugs-gnu-my-open-bugs
+@deffnx {Command} debbugs-org-my-open-bugs
+
+It is a good idea to maintain and eventually close your open bug
+reports.  The functions @code{debbugs-gnu-my-open-bugs} and
+@code{debbugs-org-my-open-bugs} help you do this, by retrieving open
+bug reports, in which you are the submitter.  These functions assume
+that you have defined the variable @code{user-mail-address}
+(@pxref{Mail Headers, , , emacs}).
+@end deffn
+
 
 @deffn  {Command} debbugs-gnu-emacs-release-blocking-reports &optional release
 @deffnx {Command} debbugs-org-emacs-release-blocking-reports &optional release
@@ -226,7 +237,6 @@ If this user option is non-@code{nil}, a progress report is shown when
 retrieving bugs, defaults to t.
 @end defopt
 
-
 @node Searching Bugs
 @chapter Searching in the Debbugs Database
 
@@ -367,6 +377,16 @@ These commands show also a progress report when
 @end deffn

+@deffn  {Command} debbugs-gnu-guix-search
+@deffnx {Command} debbugs-org-guix-search
+
+By default, @code{debbugs-gnu-search} and @code{debbugs-org-search},
+search for all open bugs in the debbugs database.  While this is
+extensive search is laudable, it is perhaps not efficient.  These two
+functions will let you search for only open guix bugs and patches.
+@end deffn
+
+
 @node Presenting Bugs
 @chapter Presenting Bugs
 
-- 
2.37.3