summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2020-08-25 15:19:11 +0200
committerMichael Albinus <michael.albinus@gmx.de>2020-08-25 15:19:11 +0200
commita142bbd288a814822ba63194c690552f8c0ce425 (patch)
tree85a79706e7e7d226cef0e663476477fbb7253fda /admin
parent4657f08b7eebf01159f7d7dba8bcb0d44d68ac48 (diff)
downloademacs-a142bbd288a814822ba63194c690552f8c0ce425.tar.gz
* admin/admin.el (reminder-for-release-blocking-bugs): New command.
Diffstat (limited to 'admin')
-rw-r--r--admin/admin.el45
1 files changed, 45 insertions, 0 deletions
diff --git a/admin/admin.el b/admin/admin.el
index 310cd54e957..728aab8b1ae 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -921,6 +921,51 @@ changes (in a non-trivial way). This function does not check for that."
'help-echo "Mouse-2: visit this definition"
:type 'cusver-xref)))))))
+
+;; Reminder message for open release-blocking bugs. This requires the
+;; GNU ELPA package `debbugs'.
+
+(defun reminder-for-release-blocking-bugs (version)
+ "Submit a reminder message for release-blocking bugs of Emacs VERSION."
+ (interactive
+ (list (completing-read
+ "Emacs release: "
+ (mapcar #'identity debbugs-gnu-emacs-blocking-reports)
+ nil t debbugs-gnu-emacs-current-release)))
+
+ (require 'reporter)
+ (require 'debbugs-gnu)
+
+ (when-let ((id (alist-get version debbugs-gnu-emacs-blocking-reports
+ nil nil #'string-equal))
+ (status-id (debbugs-get-status id))
+ (blockedby-ids (debbugs-get-attribute (car status-id) 'blockedby))
+ (blockedby-status
+ (apply #'debbugs-get-status (sort blockedby-ids #'<))))
+
+ (reporter-submit-bug-report
+ "<emacs-devel@gnu.org>" ; to-address
+ nil nil nil
+ (lambda () ; posthook
+ (goto-char (point-min))
+ (mail-position-on-field "subject")
+ (insert (format "Release-blocking bugs for Emacs %s" version))
+ (mail-text)
+ (delete-region (point) (point-max))
+ (insert "
+The following bugs are regarded as release-blocking for Emacs " version ".
+People are encouraged to work on them with priority.\n\n")
+ (dolist (_ blockedby-status)
+ (unless (equal (debbugs-get-attribute _ 'pending) "done")
+ (insert (format "bug#%d %s\n"
+ (debbugs-get-attribute _ 'id)
+ (debbugs-get-attribute _ 'subject)))))
+ (insert "
+If you use the debbugs package from GNU ELPA, you can apply the
+following form to see all bugs which block a given release:
+
+ (debbugs-gnu-emacs-release-blocking-reports \"" version "\")\n")))))
+
(provide 'admin)
;;; admin.el ends here