Subject: guix refresh/lint can provide false positive about updates

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 08 Oct 2021 15:31:57 -0400

Hello,

In Guix, we commit to offer officially released packages where
available/feasible.  Some projects produce release that are not
"stable", such as GStreamer, and our 'guix refresh' tool can't currently
tell the difference:

--8<---------------cut here---------------start------------->8---
$ guix lint gstreamer-docs
[...]
[email-masked]: can be upgraded to 1.19.2
--8<---------------cut here---------------end--------------->8---

For GStreamer, every odd minor release version indicates a development
snapshot (unstable) release.

One way to go about this would be to provide the release version scheme
at the pacakage level and use that information to filter available
releases, e.g.:

(package
 ...
 (properties '((version-scheme %even-minor-version))))

Where %even-minor-version could be a procedure accept the version string
as input and validating that the minor version number is even.

Or something along these lines.

Thanks,

Maxim