emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/debbugs da6a351 132/311: Handle blocked bugs in debbugs


From: Stefan Monnier
Subject: [elpa] externals/debbugs da6a351 132/311: Handle blocked bugs in debbugs
Date: Sun, 29 Nov 2020 18:41:56 -0500 (EST)

branch: externals/debbugs
commit da6a351c16da0164243903bb7535c94d81efe1e9
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>

    Handle blocked bugs in debbugs
    
    * debbugs-gnu.el (debbugs-gnu-mode-map): Add keys "b" and "B".
    (debbugs-gnu-show-blocked-by-reports)
    (debbugs-gnu-show-blocking-reports): New defuns.
    (debbugs-gnu-send-control-message): Implement "unmerge", "block"
    and "unblock".
    
    * debbugs.el (debbugs-get-status): Handle also `blocks' and `blockedby.
---
 Debbugs.wsdl   |  2 +-
 debbugs-gnu.el | 44 ++++++++++++++++++++++++++++++++++++++++----
 debbugs-org.el |  2 +-
 debbugs.el     | 13 ++++++++-----
 debbugs.texi   |  2 +-
 5 files changed, 51 insertions(+), 12 deletions(-)

diff --git a/Debbugs.wsdl b/Debbugs.wsdl
index b186c80..427a381 100644
--- a/Debbugs.wsdl
+++ b/Debbugs.wsdl
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!-- Copyright (C) 2011-2014  Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2015  Free Software Foundation, Inc.
 
 This file is not part of GNU Emacs.
 
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 3fe88ca..97c67e4 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1,6 +1,6 @@
 ;;; debbugs-gnu.el --- interface for the GNU bug tracker
 
-;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2015 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;         Michael Albinus <michael.albinus@gmx.org>
@@ -92,6 +92,8 @@
 ;;   RET: Show corresponding messages in Gnus
 ;;   "C": Send a control message
 ;;   "t": Mark the bug locally as tagged
+;;   "b": Show bugs this bug is blocked by
+;;   "B": Show bugs this bug is blocking
 ;;   "d": Show bug attributes
 
 ;; Furthermore, you could apply the global actions
@@ -791,6 +793,8 @@ Used instead of `tabulated-list-print-entry'."
     (define-key map "x" 'debbugs-gnu-toggle-suppress)
     (define-key map "/" 'debbugs-gnu-narrow-to-status)
     (define-key map "w" 'debbugs-gnu-widen)
+    (define-key map "b" 'debbugs-gnu-show-blocked-by-reports)
+    (define-key map "B" 'debbugs-gnu-show-blocking-reports)
     (define-key map "C" 'debbugs-gnu-send-control-message)
     map))
 
@@ -926,6 +930,24 @@ The following commands are available:
     (when id
       (debbugs-gnu-goto id))))
 
+(defun debbugs-gnu-show-blocked-by-reports ()
+  "Display all bug reports this report is blocked by."
+  (interactive)
+  (let ((id (debbugs-gnu-current-id))
+       (status (debbugs-gnu-current-status)))
+    (if (null (cdr (assq 'blockedby status)))
+       (message "Bug %d is not blocked by any other bug" id)
+      (apply 'debbugs-gnu-bugs (cdr (assq 'blockedby status))))))
+
+(defun debbugs-gnu-show-blocking-reports ()
+  "Display all bug reports this report is blocking."
+  (interactive)
+  (let ((id (debbugs-gnu-current-id))
+       (status (debbugs-gnu-current-status)))
+    (if (null (cdr (assq 'blocks status)))
+       (message "Bug %d is not blocking any other bug" id)
+      (apply 'debbugs-gnu-bugs (cdr (assq 'blocks status))))))
+
 (defun debbugs-gnu-narrow-to-status (string &optional status-only)
   "Only display the bugs matching STRING.
 If STATUS-ONLY (the prefix), ignore matches in the From and
@@ -1104,8 +1126,9 @@ removed instead."
          "Control message: "
          '("serious" "important" "normal" "minor" "wishlist"
            "done" "donenotabug" "donewontfix" "doneunreproducible"
-           "unarchive" "reopen" "close"
+           "unarchive" "unmerge" "reopen" "close"
            "merge" "forcemerge"
+           "block" "unblock"
            "owner" "noowner"
            "invalid"
            "reassign"
@@ -1134,18 +1157,31 @@ removed instead."
               (format "%s.%s"
                       (match-string 1 emacs-version)
                       (match-string 2 emacs-version)))
-             (t emacs-version))))))
+             (t emacs-version)))))
+        (status (debbugs-gnu-current-status)))
     (with-temp-buffer
       (insert "To: control@debbugs.gnu.org\n"
              "From: " (message-make-from) "\n"
              (format "Subject: control message for bug #%d\n" id)
              "\n"
              (cond
-              ((member message '("unarchive" "reopen" "noowner"))
+              ((member message '("unarchive" "unmerge" "reopen" "noowner"))
                (format "%s %d\n" message id))
               ((member message '("merge" "forcemerge"))
                (format "%s %d %s\n" message id
                        (read-string "Merge with bug #: ")))
+              ((member message '("block" "unblock"))
+               (format
+                "%s %d by %s\n" message id
+                (mapconcat
+                 'identity
+                 (completing-read-multiple
+                  (format "%s with bug(s) #: " (capitalize message))
+                  (if (equal message "unblock")
+                      (mapcar 'number-to-string
+                              (cdr (assq 'blockedby status))))
+                  nil (and (equal message "unblock") status))
+                 " ")))
               ((equal message "owner")
                (format "owner %d !\n" id))
               ((equal message "reassign")
diff --git a/debbugs-org.el b/debbugs-org.el
index 8a98aec..d49219f 100644
--- a/debbugs-org.el
+++ b/debbugs-org.el
@@ -1,6 +1,6 @@
 ;;; debbugs-org.el --- Org-mode interface for the GNU bug tracker
 
-;; Copyright (C) 2013-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <michael.albinus@gmx.org>
 ;; Keywords: comm, hypermedia, maint, outlines
diff --git a/debbugs.el b/debbugs.el
index 725a394..35caf83 100644
--- a/debbugs.el
+++ b/debbugs.el
@@ -1,6 +1,6 @@
 ;;; debbugs.el --- SOAP library to access debbugs servers
 
-;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2015 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <michael.albinus@gmx.de>
 ;; Keywords: comm, hypermedia
@@ -309,10 +309,13 @@ Example:
             (setcdr y (mapcar
                        (lambda (z) (if (numberp z) (number-to-string z) z))
                        (cdr y))))
-          ;; "mergedwith" is a string, containing blank separated bug numbers.
-          (setq y (assoc 'mergedwith (cdr (assoc 'value x))))
-          (when (stringp (cdr y))
-            (setcdr y (mapcar 'string-to-number (split-string (cdr y) " " t))))
+          ;; "mergedwith", "blocks" and "blockedby are strings,
+          ;; containing blank separated bug numbers.
+          (dolist (attribute '(mergedwith blocks blockedby))
+            (setq y (assoc attribute (cdr (assoc 'value x))))
+            (when (stringp (cdr y))
+              (setcdr y (mapcar
+                         'string-to-number (split-string (cdr y) " " t)))))
           ;; "package" is a string, containing comma separated
           ;; package names.  "keywords" and "tags" are strings,
           ;; containing blank separated package names.
diff --git a/debbugs.texi b/debbugs.texi
index 8c70e26..c26717a 100644
--- a/debbugs.texi
+++ b/debbugs.texi
@@ -8,7 +8,7 @@
 @end direntry
 
 @copying
-Copyright @copyright{} 2011-2014 Free Software Foundation, Inc.
+Copyright @copyright{} 2011-2015 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document



reply via email to

[Prev in Thread] Current Thread [Next in Thread]