Subject: bug#68660: 29.2; ELPA: Wrong type argument w. multiple maintainers in package-menu-mode

From: "J.P." <[email-masked]>
Date: Wed, 24 Jan 2024 06:31:39 -0800

"J.P." <[email-masked]> writes:

> Stefan Monnier <[email-masked]> writes:
>
>>>> Its installable via `package-install`, but not from the
>>>> `package-menu-describe-package` because of this bug in that command.
>>>
>>> This indeed works interactively on Emacs 29. Thanks.
>>>
>>> However, ERC also supports versions 27 and 28. What's the recommended
>>> way for folks to upgrade on those Emacsen? The least gruesome thing I
>>> could conjure up is
>>>
>>>   (package-install (car (alist-get 'erc package-archive-contents)))
>>
>> Do you mean that `package-install` won't work because the package is
>> already installed?  Hmm... yeah, that'd be a problem.
>>
>> I can see several ways to "fix" this, but I think the simplest would be

Would one of those several ways possibly include overriding the
`package-desc-extras' :maintainer item scraped by `lm-maintainers' with
a spec item from an elpa-packages entry? I see that support for a
`:maintainer' keyword was recently added, but it appears to serve some
other purpose. Anyway, I've attached a sketch of what I'm trying to
describe, but I'm rather unfamiliar with this program.

Thanks.

>> to change
>>
>>     ;; Maintainer: Amin Bandali <[email-masked]>, F. Jason Park <[email-masked]>
>>
>> into
>>
>>     ;; Maintainer: [email-masked]
>>
>> Would that be a problem?
>
> I'll learn to live with it if Amin (Cc'd) can.
>From 698918eb1b1f25a4b97bf951e69344ea441a8074 Mon Sep 17 00:00:00 2001
From: "F. Jason Park" <[email-masked]>
Date: Tue, 23 Jan 2024 12:56:38 -0800
Subject: [PATCH] [POC] Allow overriding extras maintainer with :maint-compat

* elpa-admin.el (elpaa--supported-keywords): Add `:maint-compat'
to spec.
(elpaa--metadata): Allow overriding `package-desc-extras'
`:maintainer' entry with new `pkg-spec' item `:maint-compat'.
(Bug#68660)
---
 elpa-admin.el | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/elpa-admin.el b/elpa-admin.el
index 9cbc805ba4..07db682085 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -1011,7 +1011,7 @@ SPECS is the list of package specifications."
   '(:url :core :auto-sync :ignored-files :release-branch :release
     :readme :news :doc :renames :version-map :make :shell-command
     :branch :lisp-dir :main-file :merge :excludes :rolling-release
-    :maintainer :manual-sync)
+    :maint-compat :maintainer :manual-sync)
   "List of keywords that can appear in a spec.")
 
 (defun elpaa--publish-package-spec (spec)
@@ -1377,7 +1377,12 @@ PKG is the name of the package and DIR is the directory where it is."
                         (advice-add 'lm-header :around lmheader-advice))
                       (package-buffer-info))
                   (advice-remove 'lm-header lmheader-advice)))
-               (extras (package-desc-extras pkg-desc))
+               (extras (let ((m-new (plist-get (cdr pkg-spec) :maint-compat)))
+                         (when m-new
+                           (setf (alist-get :maintainer
+                                            (package-desc-extras pkg-desc))
+                                 m-new))
+                         (package-desc-extras pkg-desc)))
                (version (package-desc-version pkg-desc))
                (keywords (lm-keywords-list))
                ;; (_ (elpaa--version-to-list version)) ; Sanity check!
-- 
2.42.0

>From f206ac628a43bfacc47e70933a383eda3ae08bdb Mon Sep 17 00:00:00 2001
From: "F. Jason Park" <[email-masked]>
Date: Tue, 23 Jan 2024 13:02:17 -0800
Subject: [PATCH] [POC] * elpa-packages (erc): Add :maint-compat item.

---
 elpa-packages | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/elpa-packages b/elpa-packages
index c73e8a066b..ae22abc02c 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -292,6 +292,8 @@
                                "etc/ERC-NEWS"
                                "COPYING")
   :excludes ("lisp/erc/erc-loaddefs.el" "lisp/erc/ChangeLog.*")
+  :maint-compat ("Amin Bandali <[email-masked]>, F. Jason Park <[email-masked]>"
+                 . "[email-masked]")
   :shell-command "(echo '@set ERCDIST from GNU ELPA'; echo '@set EMACSVER') >emacsver.texi"
   :doc "erc.texi"
   :news "ERC-NEWS")
-- 
2.42.0