Subject: bug#60725: guix lint thinks 2019111-0.7e76d75 is older than 20191111

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 11 Jan 2023 08:43:00 -0500

retitle 60725 support the special '~' character in our version parser
thanks

Jelle Licht <[email-masked]> writes:

> Maxim Cournoyer <[email-masked]> writes:
>
>> Hi Guix,
>>
>> If you run 'guix lint emacs-enh-ruby-mode', it'll print this:
>>
>> --8<---------------cut here---------------start------------->8---
>> [email-masked]: can be upgraded to 20191111
>> --8<---------------cut here---------------end--------------->8---
> In this particular case, 2019111 seems to have been a typo in the first
> place.  (It misses out on a '1' in our package record).

Thanks!  With this typo fixed, 'guix lint' doesn't suggest a downgrade
anymore.

> AFAIK, any sane versioning scheme would assert that 20191111 > 2019111-anything.

That's not currently the case with Guix.  Guix package version strings
are documented has having the requirement to be 'monotonically
increasing', so '43.rc3' as used by GNOME is seen by Guix as newer than
'43', the final release.

I'll keep this bug open (and retitle it), because implementing ~ would
be useful (GNOME makes use of that scheme, and it's understood by rpm,
dpkg, pkg-config, etc.).

-- 
Thanks,
Maxim