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

From: "J.P." <[email-masked]>
Date: Mon, 22 Jan 2024 06:56:23 -0800

0. HOME=$(mktemp -d) ./src/emacs --no-site-file
1. (require 'package)
2. (push '("devel" . "https://elpa.gnu.org/devel/") package-archives)
3. M-x list-packages RET
4. Wait for "Package refresh done"
5. Find _erc_ 5.6snapshot0.2024... available devel ...
6. Hit the _erc_ button:

   => describe-package-1: Wrong type argument: char-or-string-p,
      ("Amin Bandali" . "[email-masked]")

7. As a workaround, with point still on _erc_, M-:

   (let ((desc (get-text-property (point) 'package-desc)))
     (cl-callf car (alist-get :maintainer (package-desc-extras desc))))

   RET RET

Perhaps I'm hallucinating, but for some reason I was under the
impression the ELPA production instance combined multiple maintainers
into a single conjoined entity. At least I seem to remember something
like that being in effect back when ERC first encountered this in
setting up its own CI endpoint [1]. In any case, it'd be nice to somehow
fix this if it's looking like ERC 5.6 will be affected once it's
released. Please let me know if anything's required on our end.

Thanks.
J.P.

[1] https://emacs-erc.gitlab.io/bugs/archive/

    (like 2+ yrs ago) which resulted in a poor man's hack:

    https://gitlab.com/emacs-erc/bugs/-/raw/master/resources/elpa/combine-maints.el

In GNU Emacs 29.2.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.6) of 2024-01-22 built on localhost
Repository revision: 51ca049608cd116e5ec5b8bb4fd815bed1cbf4ca
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 37 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils erc-autoloads info
compat-autoloads package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp
byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 61064 6695)
 (symbols 48 7538 0)
 (strings 32 22236 1944)
 (string-bytes 1 654864)
 (vectors 16 15788)
 (vector-slots 8 213878 7973)
 (floats 8 27 32)
 (intervals 56 243 0)
 (buffers 976 10))