unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#47295] [PATCH 0/2] Display 1 line instead of 3 for each substitute download
@ 2021-03-21 16:33 Ludovic Courtès
  2021-03-21 16:56 ` [bug#47295] [PATCH 1/2] substitute: Emit a single newline upon completion Ludovic Courtès
  2021-03-31 14:05 ` bug#47295: [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès
  0 siblings, 2 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-03-21 16:33 UTC (permalink / raw)
  To: 47295; +Cc: Ludovic Courtès

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





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#47295] [PATCH 1/2] substitute: Emit a single newline upon completion.
  2021-03-21 16:33 [bug#47295] [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès
@ 2021-03-21 16:56 ` Ludovic Courtès
  2021-03-21 16:56   ` [bug#47295] [PATCH 2/2] status: Don't display download URLs for '--verbosity=1' Ludovic Courtès
  2021-03-31 14:05 ` bug#47295: [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès
  1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2021-03-21 16:56 UTC (permalink / raw)
  To: 47295; +Cc: Ludovic Courtès

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





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#47295] [PATCH 2/2] status: Don't display download URLs for '--verbosity=1'.
  2021-03-21 16:56 ` [bug#47295] [PATCH 1/2] substitute: Emit a single newline upon completion Ludovic Courtès
@ 2021-03-21 16:56   ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-03-21 16:56 UTC (permalink / raw)
  To: 47295; +Cc: Ludovic Courtès

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





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#47295: [PATCH 0/2] Display 1 line instead of 3 for each substitute download
  2021-03-21 16:33 [bug#47295] [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès
  2021-03-21 16:56 ` [bug#47295] [PATCH 1/2] substitute: Emit a single newline upon completion Ludovic Courtès
@ 2021-03-31 14:05 ` Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-03-31 14:05 UTC (permalink / raw)
  To: 47295-done

Ludovic Courtès <ludo@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’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-03-31 14:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-21 16:33 [bug#47295] [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès
2021-03-21 16:56 ` [bug#47295] [PATCH 1/2] substitute: Emit a single newline upon completion Ludovic Courtès
2021-03-21 16:56   ` [bug#47295] [PATCH 2/2] status: Don't display download URLs for '--verbosity=1' Ludovic Courtès
2021-03-31 14:05 ` bug#47295: [PATCH 0/2] Display 1 line instead of 3 for each substitute download Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).