maint: update-NEWS: Don't produce full package lists.
The lists of new and upgraded packages in 'NEWS' had become way too long and redundant with what 'guix pull' reports. * build-aux/update-NEWS.scm (write-packages-added): Don't print ADDED. (write-packages-updates)[important, table, latest, noteworthy]: New variables. Print NOTEWORTHY rather than all of UPGRADED. (main): Print PREVIOUS-VERSION and NEW-VERSION.master
parent
273cce9875
commit
e3c03952be
|
@ -30,6 +30,7 @@
|
||||||
(ice-9 match)
|
(ice-9 match)
|
||||||
(ice-9 rdelim)
|
(ice-9 rdelim)
|
||||||
(ice-9 regex)
|
(ice-9 regex)
|
||||||
|
(ice-9 vlist)
|
||||||
(ice-9 pretty-print))
|
(ice-9 pretty-print))
|
||||||
|
|
||||||
(define %header-rx
|
(define %header-rx
|
||||||
|
@ -98,31 +99,60 @@ paragraph."
|
||||||
(lambda (match port)
|
(lambda (match port)
|
||||||
(let ((stars (match:substring match 1)))
|
(let ((stars (match:substring match 1)))
|
||||||
(format port
|
(format port
|
||||||
"~a ~a new packages~%~%~a~%~%"
|
"~a ~a new packages~%~%"
|
||||||
stars (length added)
|
stars (length added)))))))))
|
||||||
(enumeration->paragraph added)))))))))
|
|
||||||
|
|
||||||
(define (write-packages-updates news-file old new)
|
(define (write-packages-updates news-file old new)
|
||||||
"Write to NEWS-FILE the list of packages upgraded between OLD and NEW."
|
"Write to NEWS-FILE the list of packages upgraded between OLD and NEW."
|
||||||
(let ((upgraded (filter-map (match-lambda
|
(define important
|
||||||
((package . new-version)
|
'("gcc" "glibc" "binutils" "gdb" ;toolchain
|
||||||
(match (assoc package old)
|
"shepherd" "linux-libre" "xorg-server" "cups" ;OS
|
||||||
((_ . old-version)
|
"gnome" "xfce" "enlightenment" "lxde" "mate" ;desktop env.
|
||||||
(and (version>? new-version old-version)
|
"guile" "bash" "python" "python2" "perl" ;languages
|
||||||
(string-append package "@"
|
"ghc" "rust" "go" "julia" "r" "ocaml"
|
||||||
new-version)))
|
"icedtea" "openjdk" "clojure" "sbcl" "racket"
|
||||||
(_ #f))))
|
"emacs" "gimp" "inkscape" "libreoffice" ;applications
|
||||||
new)))
|
"octave" "icecat" "gnupg"))
|
||||||
|
|
||||||
|
(let* ((table (fold (lambda (package table)
|
||||||
|
(match package
|
||||||
|
((name . version)
|
||||||
|
(vhash-cons name version table))))
|
||||||
|
vlist-null
|
||||||
|
new))
|
||||||
|
(latest (lambda (name)
|
||||||
|
(let ((versions (vhash-fold* cons '() name table)))
|
||||||
|
(match (sort versions version>?)
|
||||||
|
((latest . _) latest)))))
|
||||||
|
(upgraded (filter-map (match-lambda
|
||||||
|
((package . new-version)
|
||||||
|
(match (assoc package old)
|
||||||
|
((_ . old-version)
|
||||||
|
(and (string=? new-version
|
||||||
|
(latest package))
|
||||||
|
(version>? new-version old-version)
|
||||||
|
(cons package new-version)))
|
||||||
|
(_ #f))))
|
||||||
|
new))
|
||||||
|
(noteworthy (filter (match-lambda
|
||||||
|
((package . version)
|
||||||
|
(member package important)))
|
||||||
|
upgraded)))
|
||||||
(with-atomic-file-replacement news-file
|
(with-atomic-file-replacement news-file
|
||||||
(lambda (input output)
|
(lambda (input output)
|
||||||
(rewrite-org-section input output
|
(rewrite-org-section input output
|
||||||
(make-regexp "^(\\*+) (.*) package updates")
|
(make-regexp "^(\\*+) (.*) package updates")
|
||||||
(lambda (match port)
|
(lambda (match port)
|
||||||
(let ((stars (match:substring match 1)))
|
(let ((stars (match:substring match 1))
|
||||||
|
(lst (map (match-lambda
|
||||||
|
((package . version)
|
||||||
|
(string-append package " "
|
||||||
|
version)))
|
||||||
|
noteworthy)))
|
||||||
(format port
|
(format port
|
||||||
"~a ~a package updates~%~%~a~%~%"
|
"~a ~a package updates~%~%Noteworthy updates:~%~a~%~%"
|
||||||
stars (length upgraded)
|
stars (length upgraded)
|
||||||
(enumeration->paragraph upgraded)))))))))
|
(enumeration->paragraph lst)))))))))
|
||||||
|
|
||||||
|
|
||||||
(define (main . args)
|
(define (main . args)
|
||||||
|
@ -138,6 +168,8 @@ paragraph."
|
||||||
|
|
||||||
(let-values (((previous-version new-version)
|
(let-values (((previous-version new-version)
|
||||||
(call-with-input-file news-file NEWS->versions)))
|
(call-with-input-file news-file NEWS->versions)))
|
||||||
|
(format (current-error-port) "Updating NEWS for ~a to ~a...~%"
|
||||||
|
previous-version new-version)
|
||||||
(let* ((old (call-with-input-file (package-file previous-version)
|
(let* ((old (call-with-input-file (package-file previous-version)
|
||||||
read))
|
read))
|
||||||
(new (fold-packages (lambda (p r)
|
(new (fold-packages (lambda (p r)
|
||||||
|
|
Reference in New Issue