GNU bug report logs - #47295
[PATCH 0/2] Display 1 line instead of 3 for each substitute download

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sun, 21 Mar 2021 16:35:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47295 in the body.
You can then email your comments to 47295 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#47295; Package guix-patches. (Sun, 21 Mar 2021 16:35:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 21 Mar 2021 16:35:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 0/2] Display 1 line instead of 3 for each substitute download
Date: Sun, 21 Mar 2021 17:33:57 +0100
Hi!

This change brings the number of lines printed for each substitute
from 3 lines to 1, when using ‘-v1’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build -v1 vim-full poezio elixir ocaml  --no-grafts
84.9 MB will be downloaded
 elixir-1.11.4  3.7MiB                               6.8MiB/s 00:01 [##################] 100.0%
 ocaml-4.11.1  147.1MiB                             19.7MiB/s 00:07 [##################] 100.0%
 poezio-0.13.1  967KiB                               7.0MiB/s 00:00 [##################] 100.0%
 vim-full-8.2.2632                                         9.9MiB/s 00:01 | 12.7MiB transferred
--8<---------------cut here---------------end--------------->8---

‘-v2’ gives the equivalent of the current ‘-v1’, and ‘-v3’ gives
the equivalent of the current ‘-v2’ (full build output).

This change has been suggested multiple times in the past.  I guess
I was gently preventing it on the grounds that I like to see which
substitute server I’m fetching from and whether it’s gzip/lzip/zstd.

But let’s face it: not everyone is interested in those details, even
I don’t care at time.  ;-)  It took me a while to realize, but I keep
learning!

Thoughts?

Ludo’.

Ludovic Courtès (2):
  substitute: Emit a single newline upon completion.
  status: Don't display download URLs for '--verbosity=1'.

 doc/guix.texi               |  7 ++++---
 guix/scripts/substitute.scm |  7 +++++--
 guix/status.scm             | 23 +++++++++++++++++++----
 3 files changed, 28 insertions(+), 9 deletions(-)

-- 
2.31.0





Information forwarded to guix-patches <at> gnu.org:
bug#47295; Package guix-patches. (Sun, 21 Mar 2021 16:57:01 GMT) Full text and rfc822 format available.

Message #8 received at 47295 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 47295 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 1/2] substitute: Emit a single newline upon completion.
Date: Sun, 21 Mar 2021 17:56:03 +0100
The immediate effect is that, with '--verbosity=1', only two lines are
displayed for each substitute, instead of two lines followed by an empty
line.

* guix/scripts/substitute.scm (process-substitution): Emit a single
newline upon completion when PRINT-BUILD-TRACE? is true.
---
 guix/scripts/substitute.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index f4042906c8..d0b4ef9fc2 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -551,8 +551,11 @@ the current output port."
       (every (compose zero? cdr waitpid) pids)
 
       ;; Skip a line after what 'progress-reporter/file' printed, and another
-      ;; one to visually separate substitutions.
-      (display "\n\n" (current-error-port))
+      ;; one to visually separate substitutions.  When PRINT-BUILD-TRACE? is
+      ;; true, leave it up to (guix status) to prettify things.
+      (newline (current-error-port))
+      (unless print-build-trace?
+        (newline (current-error-port)))
 
       ;; Check whether we got the data announced in NARINFO.
       (let ((actual (get-hash)))
-- 
2.31.0





Information forwarded to guix-patches <at> gnu.org:
bug#47295; Package guix-patches. (Sun, 21 Mar 2021 16:57:02 GMT) Full text and rfc822 format available.

Message #11 received at 47295 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 47295 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 2/2] status: Don't display download URLs for '--verbosity=1'.
Date: Sun, 21 Mar 2021 17:56:04 +0100
With this change, each substitute occupies a single line of
output (instead of two) when using '-v1', the default for 'guix package'
& co.

* guix/status.scm (print-build-event): Add #:print-urls? and honor it.
(print-build-event/quiet): Pass #:print-urls? #f.
(print-build-event/quiet-with-urls): New procedure.
(logger-for-level): Add case for LEVEL 2.
* doc/guix.texi (Common Build Options): Adjust '--verbosity'
documentation.
---
 doc/guix.texi   |  7 ++++---
 guix/status.scm | 23 +++++++++++++++++++----
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 94ecd2c247..8c6550e733 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10253,9 +10253,10 @@ guix-daemon, @option{--timeout}}).
 @cindex build logs, verbosity
 @item -v @var{level}
 @itemx --verbosity=@var{level}
-Use the given verbosity @var{level}, an integer.  Choosing 0 means that no
-output is produced, 1 is for quiet output, and 2 shows all the build log
-output on standard error.
+Use the given verbosity @var{level}, an integer.  Choosing 0 means that
+no output is produced, 1 is for quiet output; 2 is similar to 1 but it
+additionally displays download URLs; 3 shows all the build log output on
+standard error.
 
 @item --cores=@var{n}
 @itemx -c @var{n}
diff --git a/guix/status.scm b/guix/status.scm
index d47bf1700c..362ae2882c 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -403,10 +403,12 @@ the current build phase."
                             #:optional (port (current-error-port))
                             #:key
                             (colorize? (color-output? port))
+                            (print-urls? #t)
                             (print-log? #t))
   "Print information about EVENT and STATUS to PORT.  When COLORIZE? is true,
 produce colorful output.  When PRINT-LOG? is true, display the build log in
-addition to build events."
+addition to build events.  When PRINT-URLS? is true, display the URL of
+substitutes being downloaded."
   (define info
     (if colorize?
         (cute colorize-string <> (color BOLD))
@@ -526,9 +528,10 @@ addition to build events."
        (format port (info (G_ "substituting ~a...")) item)
        (newline port)))
     (('download-started item uri _ ...)
-     (erase-current-line*)
-     (format port (info (G_ "downloading from ~a ...")) uri)
-     (newline port))
+     (when print-urls?
+       (erase-current-line*)
+       (format port (info (G_ "downloading from ~a ...")) uri)
+       (newline port)))
     (('download-progress item uri
                          (= string->number size)
                          (= string->number transferred))
@@ -602,6 +605,17 @@ addition to build events."
                                   (colorize? (color-output? port)))
   (print-build-event event old-status status port
                      #:colorize? colorize?
+                     #:print-urls? #f
+                     #:print-log? #f))
+
+(define* (print-build-event/quiet-with-urls event old-status status
+                                            #:optional
+                                            (port (current-error-port))
+                                            #:key
+                                            (colorize? (color-output? port)))
+  (print-build-event event old-status status port
+                     #:colorize? colorize?
+                     #:print-urls? #t             ;show download URLs
                      #:print-log? #f))
 
 (define* (build-status-updater #:optional (on-change (const #t)))
@@ -787,6 +801,7 @@ evaluate EXP... in that context."
   "Return the logging procedure that corresponds to LEVEL."
   (cond ((<= level 0) (const #t))
         ((= level 1)  print-build-event/quiet)
+        ((= level 2)  print-build-event/quiet-with-urls)
         (else         print-build-event)))
 
 (define (call-with-status-verbosity level thunk)
-- 
2.31.0





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 31 Mar 2021 14:06:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Wed, 31 Mar 2021 14:06:02 GMT) Full text and rfc822 format available.

Message #16 received at 47295-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 47295-done <at> debbugs.gnu.org
Subject: Re: bug#47295: [PATCH 0/2] Display 1 line instead of 3 for each
 substitute download
Date: Wed, 31 Mar 2021 16:05:13 +0200
Ludovic Courtès <ludo <at> gnu.org> skribis:

> This change brings the number of lines printed for each substitute
> from 3 lines to 1, when using ‘-v1’:
>
> $ ./pre-inst-env guix build -v1 vim-full poezio elixir ocaml  --no-grafts
> 84.9 MB will be downloaded
>  elixir-1.11.4  3.7MiB                               6.8MiB/s 00:01 [##################] 100.0%
>  ocaml-4.11.1  147.1MiB                             19.7MiB/s 00:07 [##################] 100.0%
>  poezio-0.13.1  967KiB                               7.0MiB/s 00:00 [##################] 100.0%
>  vim-full-8.2.2632                                         9.9MiB/s 00:01 | 12.7MiB transferred
>
> ‘-v2’ gives the equivalent of the current ‘-v1’, and ‘-v3’ gives
> the equivalent of the current ‘-v2’ (full build output).

Pushed as e45ef9a648c155c35b51e6b15049a1bd5416f0a1.

I’ll follow up with an update of the ‘guix’ package for the (guix
scripts substitute) part.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 29 Apr 2021 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 355 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.