refresh: '--list-updaters' shows updater coverage.
* guix/scripts/refresh.scm (list-updaters-and-exit): Compute the coverage ratio of each updater and print it. Print the coverage ratio for all the updaters. * doc/guix.texi (Invoking guix refresh): Document it.master
parent
2fd370e816
commit
3676f89255
|
@ -5394,6 +5394,9 @@ be used when passing @command{guix refresh} one or more package names:
|
|||
@itemx -L
|
||||
List available updaters and exit (see @option{--type} above.)
|
||||
|
||||
For each updater, display the fraction of packages it covers; at the
|
||||
end, display the fraction of packages covered by all these updaters.
|
||||
|
||||
@item --list-dependent
|
||||
@itemx -l
|
||||
List top-level dependent packages that would need to be rebuilt as a
|
||||
|
|
|
@ -220,11 +220,28 @@ unavailable optional dependencies such as Guile-JSON."
|
|||
(define (list-updaters-and-exit)
|
||||
"Display available updaters and exit."
|
||||
(format #t (_ "Available updaters:~%"))
|
||||
(for-each (lambda (updater)
|
||||
(format #t "- ~a: ~a~%"
|
||||
(upstream-updater-name updater)
|
||||
(_ (upstream-updater-description updater))))
|
||||
%updaters)
|
||||
(newline)
|
||||
|
||||
(let* ((packages (fold-packages cons '()))
|
||||
(total (length packages)))
|
||||
(define covered
|
||||
(fold (lambda (updater covered)
|
||||
(let ((matches (count (upstream-updater-predicate updater)
|
||||
packages)))
|
||||
;; TRANSLATORS: The parenthetical expression here is rendered
|
||||
;; like "(42% coverage)" and denotes the fraction of packages
|
||||
;; covered by the given updater.
|
||||
(format #t (_ " - ~a: ~a (~2,1f% coverage)~%")
|
||||
(upstream-updater-name updater)
|
||||
(_ (upstream-updater-description updater))
|
||||
(* 100. (/ matches total)))
|
||||
(+ covered matches)))
|
||||
0
|
||||
%updaters))
|
||||
|
||||
(newline)
|
||||
(format #t (_ "~2,1f% of the packages are covered by these updaters.~%")
|
||||
(* 100. (/ covered total))))
|
||||
(exit 0))
|
||||
|
||||
(define (warn-no-updater package)
|
||||
|
|
Reference in New Issue