Include some useful numbers on the package derivations comparison

As it's frequently useful to know how many packages/builds some change has
affected.
This commit is contained in:
Christopher Baines 2023-02-15 15:48:45 +00:00
parent 1266d3d336
commit f68822cad2
1 changed files with 29 additions and 0 deletions

View File

@ -18,10 +18,12 @@
(define-module (guix-data-service web compare html)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-43)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)
#:use-module (texinfo)
#:use-module (texinfo html)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service web query-parameters)
#:use-module (guix-data-service web util)
#:use-module (guix-data-service web html-utils)
@ -842,6 +844,33 @@ enough builds to determine a change")))
(div
(@ (class "col-sm-12"))
(h1 ,page-header)
,@(if (not (null? derivation-changes))
(match (vector-fold
(lambda (_ result change)
(match result
((names . new-drvs-count)
(let ((count
(or
(and=> (assq-ref change 'target)
vector-length)
0)))
(cons
(if (= 0 count)
names
(cons (assq-ref change 'name)
names))
(+ new-drvs-count count))))))
(cons '() 0)
derivation-changes)
((names . new-drvs-count)
(let ((distinct-packages
(length
(delete-duplicates/sort! names string<?))))
`((p
,(simple-format #f "Showing ~A new derivations across ~A packages"
new-drvs-count
distinct-packages))))))
'())
,(if
(null? derivation-changes)
'(p "No derivation changes")