lint: refresh: Warn about missing or dysfunctional updaters.

This feedback should help us improve updaters.

* guix/lint.scm (check-for-updates): Return a warning when PACKAGE lacks
an updater or when the updater returns #f.
This commit is contained in:
Ludovic Courtès 2021-04-04 22:43:13 +02:00
parent 35ca3cfbcf
commit 709f30b8e4
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1191,21 +1191,32 @@ (define* (check-vulnerabilities package
(define (check-for-updates package)
"Check if there is an update available for PACKAGE."
(match (with-networking-fail-safe
(format #f (G_ "while retrieving upstream info for '~a'")
(package-name package))
#f
(package-latest-release* package))
((? upstream-source? source)
(if (version>? (upstream-source-version source)
(package-version package))
(list
(make-warning package
(G_ "can be upgraded to ~a")
(list (upstream-source-version source))
#:field 'version))
'()))
(#f '()))) ; cannot find newer upstream release
(match (lookup-updater package)
(#f
(list (make-warning package (G_ "no updater for ~a")
(list (package-name package))
#:field 'source)))
((? upstream-updater? updater)
(match (with-networking-fail-safe
(format #f (G_ "while retrieving upstream info for '~a'")
(package-name package))
#f
(package-latest-release package))
((? upstream-source? source)
(if (version>? (upstream-source-version source)
(package-version package))
(list
(make-warning package
(G_ "can be upgraded to ~a")
(list (upstream-source-version source))
#:field 'version))
'()))
(#f ;cannot find upstream release
(list (make-warning package
(G_ "updater '~a' failed to find \
upstream releases")
(list (upstream-updater-name updater))
#:field 'source)))))))
(define (check-archival package)