[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reducing default verbosity
From: |
Ludovic Courtès |
Subject: |
Re: Reducing default verbosity |
Date: |
Wed, 06 Dec 2017 11:20:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hello!
Danny Milosavljevic <address@hidden> skribis:
> On Tue, 5 Dec 2017 14:33:01 +0100
> Ricardo Wurmus <address@hidden> 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’.