Subject: 27.1; enhance package meta-data for ELPA/package.el

From: Corwin Brust <[email-masked]>
Date: Mon, 19 Oct 2020 16:56:12 -0500

It is not currently possible out-of-the-box to make
`package-list-packages', for example, sort available packages based on
which have been updated most recently.

Other Emacs Lisp Package Archives (e.g. MELPA) solve this problem by
prefixing release versions with a strictly formatted date-string, thus
if one removes ELPA from `package-archives' one is able to sort by
version to see those packages updated most/least recently.  If one does
not first remove ELPA all ELPA listing are pushed to the top and no
indication of how empericaly recently (e.g. date or elapased time) ELPA
hosted packages have been updated.

While it could be easy for ELPA to follow the convention adopted
elsewhere and provide the desired behavior consistantly that way, this
feels like a hack.

This request is to add additional meta-data, especially
package-last-updated-datetime, or similar, to package.el and provide
guidance to package authors to support this/these new data.  (Hopefully
this can be approached so that package authors would not explicitly set
release date/time values often or at all as that seems error prone.)

To reproduce (under Emacs -Q):

1. start Emacs
2. M-x package-list-packages
3. click the Version header
4. Note lack of indication when any given packags was last udpated

Compare with:

1. start Emacs
2. M-: (setq package-archives
        (("MELPA" .
          "https://melpa.org/packages/")))
        RETURN
3. click the version header
4. Note packages are sorted with the most recently updated listed first.

In GNU Emacs 27.1 (build 1, x86_64-w64-mingw32)
 of 2020-08-21 built on CIRROCUMULUS
Repository revision: 86d8d76aa36037184db0b2897c434cdaab1a9ae8
Repository branch: HEAD
Windowing system distributor 'Microsoft Corp.', version 10.0.18363
System Description: Microsoft Windows 10 Home (v10.0.1909.18363.1139)

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Debug on Error enabled globally

Configured using:
 'configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2
HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search seq
byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date subr-x
cl-loaddefs cl-lib cus-start cus-load tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads w32notify w32
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 53994 9940)
 (symbols 48 6967 1)
 (strings 32 18567 1707)
 (string-bytes 1 542031)
 (vectors 16 9270)
 (vector-slots 8 123454 7690)
 (floats 8 22 250)
 (intervals 56 222 0)
 (buffers 1000 11))

-- 
Corwin
612-217-1742
612-298-0615 (fax)
612-695-4276 (mobile)
corwin.brust (skype)
[email-masked]