unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Reducing default verbosity
@ 2017-12-05 13:33 Ricardo Wurmus
  2017-12-05 14:04 ` Danny Milosavljevic
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ricardo Wurmus @ 2017-12-05 13:33 UTC (permalink / raw)
  To: guix-devel

Hi Guix,

for the release after 0.14.0 I’d like us to implement changes to the
default verbosity of Guix commands.

Here are a few things that I think would make for better defaults:

* Reduce package downloads from three lines to one line.  The
  “Downloading URL” line is only important when things go wrong.
* Reduce precision in percentages.  The extra digit and the period
  contribute to visual noise.
* Widen progress bar, so that it changes more quickly.

  Before:
  
    Downloading https://berlin.guixsd.org/nar/gzip/r43434523452345…-zlib-1.2.11…
     zlib-1.2.11    151KiB      12.6MiB/s  00:00 [###############] 100.0%

    Downloading https://berlin.guixsd.org/nar/gzip/rlol…-libpng-1.6.29…
     libpng-1.6.29  377KiB      10.6MiB/s  00:00 [#############  ]  90.0%

  After:

    zlib-1.2.11     151KiB  00:00 [##############################] 100%  12.6MiB/s
    libpng-1.6.29   377KiB  00:00 [#########################     ]  90%  10.6MiB/s

* Redirect all build output to log files; as we can’t generally estimate
  progress I’d use a spinner and maybe display the name of the current
  build phase and the number of build phases that are left.

  Building openldap-2.4.45 (2/6)  [‐----->-----------------------]
  Building openldap-2.4.45 (2/6)  [‐-------------->--------------]
  Building openldap-2.4.45 (3/6)  [‐----------------------->-----]
  Building openldap-2.4.45 (4/6)  [‐-----------------<-----------]
  Building openldap-2.4.45 (4/6)  [-------------<----------------]

  There are some pretty single character unicode spinners here:
    https://github.com/pmonks/spinner/blob/master/src/spinner/core.clj

* Remove double messages that are printed by the daemon and the Guix
  client, e.g. hash mismatches.  Here’s an example of this:

--8<---------------cut here---------------start------------->8---
rekado in ~: guix build guile-sjson
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
@ build-started /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - x86_64-linux /var/log/guix/drvs/f4//a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv.bz2

Starting download of /gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz
From https://dustycloud.org/misc/sjson-0.2.1.tar.gz...
 ....1.tar.gz  90KiB                757KiB/s 00:00 [####################] 100.0%
sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
  expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
  actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
@ build-failed /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
  expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
  actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
cannot build derivation `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv': 1 dependencies couldn't be built
guix build: error: build failed: build of `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv' failed
rekado in ~: 
--8<---------------cut here---------------end--------------->8---

What do you think?

-- 
Ricardo

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

* Re: Reducing default verbosity
  2017-12-05 13:33 Reducing default verbosity Ricardo Wurmus
@ 2017-12-05 14:04 ` Danny Milosavljevic
  2017-12-06 10:20   ` Ludovic Courtès
  2017-12-06  1:47 ` Leo Famulari
  2017-12-06 17:01 ` Hartmut Goebel
  2 siblings, 1 reply; 7+ messages in thread
From: Danny Milosavljevic @ 2017-12-05 14:04 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hi Ricardo,

On Tue, 5 Dec 2017 14:33:01 +0100
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> wrote:

> * Reduce package downloads from three lines to one line.  The
>   “Downloading URL” line is only important when things go wrong.
> * Reduce precision in percentages.  The extra digit and the period
>   contribute to visual noise.
> * Widen progress bar, so that it changes more quickly.
> 
>   Before:
>   
>     Downloading https://berlin.guixsd.org/nar/gzip/r43434523452345…-zlib-1.2.11…
>      zlib-1.2.11    151KiB      12.6MiB/s  00:00 [###############] 100.0%
> 
>     Downloading https://berlin.guixsd.org/nar/gzip/rlol…-libpng-1.6.29…
>      libpng-1.6.29  377KiB      10.6MiB/s  00:00 [#############  ]  90.0%
> 
>   After:
> 
>     zlib-1.2.11     151KiB  00:00 [##############################] 100%  12.6MiB/s
>     libpng-1.6.29   377KiB  00:00 [#########################     ]  90%  10.6MiB/s
> 
> * Redirect all build output to log files; as we can’t generally estimate
>   progress I’d use a spinner and maybe display the name of the current
>   build phase and the number of build phases that are left.
> 
>   Building openldap-2.4.45 (2/6)  [‐----->-----------------------]
>   Building openldap-2.4.45 (2/6)  [‐-------------->--------------]
>   Building openldap-2.4.45 (3/6)  [‐----------------------->-----]
>   Building openldap-2.4.45 (4/6)  [‐-----------------<-----------]
>   Building openldap-2.4.45 (4/6)  [-------------<----------------]
> 
>   There are some pretty single character unicode spinners here:
>     https://github.com/pmonks/spinner/blob/master/src/spinner/core.clj
> 
> * Remove double messages that are printed by the daemon and the Guix
>   client, e.g. hash mismatches.  Here’s an example of this:
> 
> --8<---------------cut here---------------start------------->8---
> rekado in ~: guix build guile-sjson
> substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> @ build-started /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - x86_64-linux /var/log/guix/drvs/f4//a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv.bz2
> 
> Starting download of /gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz
> >From https://dustycloud.org/misc/sjson-0.2.1.tar.gz...  
>  ....1.tar.gz  90KiB                757KiB/s 00:00 [####################] 100.0%
> sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
>   expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>   actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
> @ build-failed /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
>   expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>   actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
> cannot build derivation `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv': 1 dependencies couldn't be built
> guix build: error: build failed: build of `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv' failed
> rekado in ~: 
> --8<---------------cut here---------------end--------------->8---
> 
> What do you think?

That would be very nice.

I think I tried to do something like the log file stuff before.  The build daemon chooses the log filename and only tells guix frontend about it on success or something.  So not sure whether it would be easy to access the build logs on failure.  I forgot the details, it has been months.

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

* Re: Reducing default verbosity
  2017-12-05 13:33 Reducing default verbosity Ricardo Wurmus
  2017-12-05 14:04 ` Danny Milosavljevic
@ 2017-12-06  1:47 ` Leo Famulari
  2017-12-06 10:21   ` Ludovic Courtès
  2017-12-06 17:01 ` Hartmut Goebel
  2 siblings, 1 reply; 7+ messages in thread
From: Leo Famulari @ 2017-12-06  1:47 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 932 bytes --]

On Tue, Dec 05, 2017 at 02:33:01PM +0100, Ricardo Wurmus wrote:
> * Redirect all build output to log files; as we can’t generally estimate
>   progress I’d use a spinner and maybe display the name of the current
>   build phase and the number of build phases that are left.
> 
>   Building openldap-2.4.45 (2/6)  [‐----->-----------------------]
>   Building openldap-2.4.45 (2/6)  [‐-------------->--------------]
>   Building openldap-2.4.45 (3/6)  [‐----------------------->-----]
>   Building openldap-2.4.45 (4/6)  [‐-----------------<-----------]
>   Building openldap-2.4.45 (4/6)  [-------------<----------------]
> 
>   There are some pretty single character unicode spinners here:
>     https://github.com/pmonks/spinner/blob/master/src/spinner/core.clj

Overall I like your suggestions.

I'd prefer to keep the full build output as the default of `guix build`,
and maybe `guix environment`.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: Reducing default verbosity
  2017-12-05 14:04 ` Danny Milosavljevic
@ 2017-12-06 10:20   ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2017-12-06 10:20 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel, Ricardo Wurmus

Hello!

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Tue, 5 Dec 2017 14:33:01 +0100
> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> wrote:
>
>> * Reduce package downloads from three lines to one line.  The
>>   “Downloading URL” line is only important when things go wrong.
>> * Reduce precision in percentages.  The extra digit and the period
>>   contribute to visual noise.
>> * Widen progress bar, so that it changes more quickly.
>> 
>>   Before:
>>   
>>     Downloading https://berlin.guixsd.org/nar/gzip/r43434523452345…-zlib-1.2.11…
>>      zlib-1.2.11    151KiB      12.6MiB/s  00:00 [###############] 100.0%
>> 
>>     Downloading https://berlin.guixsd.org/nar/gzip/rlol…-libpng-1.6.29…
>>      libpng-1.6.29  377KiB      10.6MiB/s  00:00 [#############  ]  90.0%
>> 
>>   After:
>> 
>>     zlib-1.2.11     151KiB  00:00 [##############################] 100%  12.6MiB/s
>>     libpng-1.6.29   377KiB  00:00 [#########################     ]  90%  10.6MiB/s
>> 
>> * Redirect all build output to log files; as we can’t generally estimate
>>   progress I’d use a spinner and maybe display the name of the current
>>   build phase and the number of build phases that are left.
>> 
>>   Building openldap-2.4.45 (2/6)  [‐----->-----------------------]
>>   Building openldap-2.4.45 (2/6)  [‐-------------->--------------]
>>   Building openldap-2.4.45 (3/6)  [‐----------------------->-----]
>>   Building openldap-2.4.45 (4/6)  [‐-----------------<-----------]
>>   Building openldap-2.4.45 (4/6)  [-------------<----------------]
>> 
>>   There are some pretty single character unicode spinners here:
>>     https://github.com/pmonks/spinner/blob/master/src/spinner/core.clj
>> 
>> * Remove double messages that are printed by the daemon and the Guix
>>   client, e.g. hash mismatches.  Here’s an example of this:
>> 
>> --8<---------------cut here---------------start------------->8---
>> rekado in ~: guix build guile-sjson
>> substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
>> substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
>> @ build-started /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - x86_64-linux /var/log/guix/drvs/f4//a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv.bz2
>> 
>> Starting download of /gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz
>> >From https://dustycloud.org/misc/sjson-0.2.1.tar.gz...  
>>  ....1.tar.gz  90KiB                757KiB/s 00:00 [####################] 100.0%
>> sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
>>   expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>>   actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>> @ build-failed /gnu/store/f4a56cwcb45mkd8vgpjprx06rs4vqhws-sjson-0.2.1.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/59k6bgh00312a0vnha65hzs45b6z6vpq-sjson-0.2.1.tar.gz'
>>   expected: 0mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>>   actual:   1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3
>> cannot build derivation `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv': 1 dependencies couldn't be built
>> guix build: error: build failed: build of `/gnu/store/l14gbyb0n7wb2j1ff7ixqah93afzjxia-guile-sjson-0.2.1.drv' failed
>> rekado in ~: 
>> --8<---------------cut here---------------end--------------->8---
>> 
>> What do you think?
>
> That would be very nice.

+1!

> I think I tried to do something like the log file stuff before.  The build daemon chooses the log filename and only tells guix frontend about it on success or something.  So not sure whether it would be easy to access the build logs on failure.  I forgot the details, it has been months.

The discussion is at
<https://lists.gnu.org/archive/html/guix-devel/2017-05/msg00497.html>.

The ‘wip-ui’ branch contains one patch I proposed back then to “parse”
build logs so the UI can figure out the current state and important
events and display the right thing.  Danny also proposed a spinner
implementation: <https://bugs.gnu.org/27566>.

Probably time to revive these patches and see what can be done!

Ludo’.

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

* Re: Reducing default verbosity
  2017-12-06  1:47 ` Leo Famulari
@ 2017-12-06 10:21   ` Ludovic Courtès
  2017-12-06 17:03     ` Hartmut Goebel
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2017-12-06 10:21 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel, Ricardo Wurmus

Leo Famulari <leo@famulari.name> skribis:

> I'd prefer to keep the full build output as the default of `guix build`,
> and maybe `guix environment`.

Yes, maybe just ‘guix build’ if you ask me.

Ludo’.

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

* Re: Reducing default verbosity
  2017-12-05 13:33 Reducing default verbosity Ricardo Wurmus
  2017-12-05 14:04 ` Danny Milosavljevic
  2017-12-06  1:47 ` Leo Famulari
@ 2017-12-06 17:01 ` Hartmut Goebel
  2 siblings, 0 replies; 7+ messages in thread
From: Hartmut Goebel @ 2017-12-06 17:01 UTC (permalink / raw)
  To: guix-devel

Am 05.12.2017 um 14:33 schrieb Ricardo Wurmus:
> What do you think?

IMHO this would be a great improvement.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

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

* Re: Reducing default verbosity
  2017-12-06 10:21   ` Ludovic Courtès
@ 2017-12-06 17:03     ` Hartmut Goebel
  0 siblings, 0 replies; 7+ messages in thread
From: Hartmut Goebel @ 2017-12-06 17:03 UTC (permalink / raw)
  To: guix-devel

Am 06.12.2017 um 11:21 schrieb Ludovic Courtès:
> Leo Famulari <leo@famulari.name> skribis:
>
>> I'd prefer to keep the full build output as the default of `guix build`,
>> and maybe `guix environment`.
> Yes, maybe just ‘guix build’ if you ask me.

+1 for ‘guix build’ only.

"guix environment" is often used by end-users who typically are not able
to do anything with this data.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

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

end of thread, other threads:[~2017-12-06 17:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-05 13:33 Reducing default verbosity Ricardo Wurmus
2017-12-05 14:04 ` Danny Milosavljevic
2017-12-06 10:20   ` Ludovic Courtès
2017-12-06  1:47 ` Leo Famulari
2017-12-06 10:21   ` Ludovic Courtès
2017-12-06 17:03     ` Hartmut Goebel
2017-12-06 17:01 ` Hartmut Goebel

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).