Subject: bug#68317: Can't sort *Packages* buffer by version after installing with package-vc

From: Joseph Turner <[email-masked]>
Date: Tue, 09 Jan 2024 21:16:06 -0800

Eli Zaretskii <[email-masked]> writes:

>> From: Philip Kaludercic <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Tue, 09 Jan 2024 20:19:15 +0000
>>
>> Eli Zaretskii <[email-masked]> writes:
>>
>> >> From: Philip Kaludercic <[email-masked]>
>> >> Cc: Joseph Turner <[email-masked]>,  [email-masked]
>> >> Date: Tue, 09 Jan 2024 19:25:44 +0000
>> >>
>> >> Eli Zaretskii <[email-masked]> writes:
>> >>
>> >> >> version-to-list: Invalid version syntax: ‘c99367ebc2f0afe0baaf2f5e5ca1ad9d62ba6e21’ (must start with a number)
>> >> >
>> >> > Sounds like package-vc-commit should be modified to produce a valid
>> >> > version string (which SHA1 is not)?  Philip?
>> >>
>> >> We can also adjust `package-menu--version-predicate' to handle
>> >> non-version numbers, which I think would be more robust.
>> >
>> > Fine by me, but can this be done safely enough for emacs-29?
>>
>> This would be a simple implementation, I don't know if it is safe enough
>> for you:
>
> Looks safe enough, thanks.

With this solution, when sorting by version, packages at version 0.0.0
are interleaved with packages whose version string is a hash, such as:

  breadcrumb                     c99367ebc2f0afe0baaf2f5e5ca1ad9d62ba6e21 source                No description available.
  chordpro-mode                  a63fc0b7181299befc4496cba04e0f84d5953000 source                No description available.
  consult-emms                   407edec0f2a997e32cb1bbeff811f73b6fac42ac source                No description available.
  denote                         5e9b6b3bf0a81e00b0db0071f0c06a889f7e4a71 source                No description available.
  disable-mouse                  0.0.0          external              Disable mouse commands globally
  emacsql                        0.0.0          external              High-level SQL database front-end
  hl-todo                        0.0.0          external              Highlight TODO and similar keywords
  hyperdrive                     2930992446f508a7716b1e52a6aaf824d3f152d9 source                No description available.
  jabber                         6900d9e085bbb2ef35b731c661fe54fa88422d6a source                No description available.
  ledger-mode                    0.0.0          external              Helper code for use with the "ledger" command-line tool
  lisp                           unknown        source                No description available.
  macrostep                      0.0.0          external              Interactive macro expander

While this is a little bit awkward, it's certainly better than an error.

Thank you for the quick fix!

Joseph