GNU bug report logs -
#53818
[PATCH 0/3] Add Repology updater
Previous Next
Full log
Message #122 received at 53818 <at> debbugs.gnu.org (full text, mbox):
The order determines which updater gets used first when running ‘guix refresh’
on a package. We want the most generic updaters to be last since they usually
don’t provide as much or accurate information as language-specific updaters.
* guix/upstream.scm (sort-updaters): New procedure.
(%updaters): Use it.
---
guix/upstream.scm | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/guix/upstream.scm b/guix/upstream.scm
index 6666803a92..d5faf9d3ee 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -250,14 +250,31 @@ (define (importer-modules)
%load-path)
#:warn warn-about-load-error)))
+(define (sort-updaters updaters)
+ "Sort UPDATERS by putting the more generic ones last."
+ (define (genericity updater)
+ (cond
+ ((equal? 'repology (upstream-updater-name updater))
+ 2)
+ ((string-prefix? "generic-"
+ (symbol->string (upstream-updater-name updater)))
+ 1)
+ (else 0)))
+
+ (define (less a b)
+ (<= (genericity a) (genericity b)))
+
+ (stable-sort updaters less))
+
(define %updaters
;; The list of publically-known updaters.
- (delay (fold-module-public-variables (lambda (obj result)
- (if (upstream-updater? obj)
- (cons obj result)
- result))
- '()
- (importer-modules))))
+ (delay (sort-updaters
+ (fold-module-public-variables (lambda (obj result)
+ (if (upstream-updater? obj)
+ (cons obj result)
+ result))
+ '()
+ (importer-modules)))))
;; Tests need to mock this variable so mark it as "non-declarative".
(set! %updaters %updaters)
--
2.34.1
This bug report was last modified 3 years and 103 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.