cbaines pushed a commit to branch trunk
in repository data-service.

commit 1f9626d05866a3317db7afca30709d0a5f2a57b4
Author: Christopher Baines <m...@cbaines.net>
AuthorDate: Wed Mar 19 13:02:33 2025 +0000

    Just log duplicates once, to avoid the duplicate logging
---
 guix-data-service/jobs/load-new-guix-revision.scm | 34 +++++++++++++----------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/guix-data-service/jobs/load-new-guix-revision.scm 
b/guix-data-service/jobs/load-new-guix-revision.scm
index 5034dcc..e9153cd 100644
--- a/guix-data-service/jobs/load-new-guix-revision.scm
+++ b/guix-data-service/jobs/load-new-guix-revision.scm
@@ -659,8 +659,9 @@
    store
    proc))
 
-(define (sort-and-deduplicate-inferior-packages packages
-                                                pkg-to-replacement-hash-table)
+(define* (sort-and-deduplicate-inferior-packages packages
+                                                 pkg-to-replacement-hash-table
+                                                 #:key log-duplicates?)
   (let ((sorted-packages
          (sort packages
                (lambda (a b)
@@ -727,21 +728,23 @@
                        (and (eq? #f a-replacement)
                             (eq? #f b-replacement))))
                  (begin
-                   (simple-format (current-error-port)
-                                  "warning: ignoring duplicate package: ~A@~A 
(replacement: ~A, location: ~A)\n"
-                                  a-name
-                                  a-version
-                                  a-replacement
-                                  (location-line a-location))
-                   (print-packages-matching-name-and-version
-                    a-name
-                    a-version)
+                   (when log-duplicates?
+                     (simple-format (current-error-port)
+                                    "warning: ignoring duplicate package: 
~A@~A (replacement: ~A, location: ~A)\n"
+                                    a-name
+                                    a-version
+                                    a-replacement
+                                    (location-line a-location))
+                     (print-packages-matching-name-and-version
+                      a-name
+                      a-version))
                    result)
                  (cons a result)))))
      '()
      sorted-packages)))
 
-(define (inferior-packages-plus-replacements inf)
+(define* (inferior-packages-plus-replacements inf
+                                              #:key log-duplicates?)
   (let* ((packages
           ;; The use of force in (guix inferior) introduces a continuation
           ;; barrier
@@ -800,7 +803,8 @@
                ;; TODO Sort introduces a continuation barrier
                (sort-and-deduplicate-inferior-packages
                 (append! packages non-exported-replacements)
-                pkg-to-replacement-hash-table)))))
+                pkg-to-replacement-hash-table
+                #:log-duplicates? log-duplicates?)))))
 
          (deduplicated-packages-length
           (length deduplicated-packages)))
@@ -2099,7 +2103,9 @@ SELECT store_path FROM derivation_source_files WHERE id = 
$1"
                  (with-time-logging "getting all inferior package data"
                    (let ((packages
                           pkg-to-replacement-hash-table
-                          (inferior-packages-plus-replacements inferior)))
+                          (inferior-packages-plus-replacements
+                           inferior
+                           #:log-duplicates? #t)))
                      (all-inferior-packages-data
                       inferior
                       packages

Reply via email to