guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: User-Friendlyness of Guix and non-scaryness, printing messages


From: ng0
Subject: Re: User-Friendlyness of Guix and non-scaryness, printing messages
Date: Sun, 28 May 2017 19:30:45 +0000

Hi,

Danny Milosavljevic transcribed 15K bytes:
> Hi,
> 
> so bug#26941 (which is only tangentially related) has made me think about a 
> long-standing usability wart of Guix:
> 
> The verbosity of Guix messages is really off-putting for regular users.
> 
> Ideally, a successful build & installation of a package should look like this:
> 
> $ guix package -i foobar
> $ 
> 
> Nothing else.  If you can't help it, then:
> 
> $ guix package -i foobar
> Package foobar in version 2.3.2 has been successfully installed into your 
> profile.
> $ 
> 
> For a successful installation it should *never* print (as it does now):
> 
> $ guix package -i foobar
> [... 20 pages of cryptic text]
> Package foobar has been successfully installed into your profile.
> $ 
> 
> I think that a line containing something like 
> "36pqsgbqi7kkkkn89sqrp2hyk3gxm8zv" (like install-file would print, too) 
> should never appear in front of the user in normal operation.
> 
> Some programmer (!) colleagues of mine actually remarked something like "what 
> is THAT? Looks scary" when they looked at what guix prints when I install 
> something in Guix.
> 
> Really, printing that much noise is an usability bug.
> 
> Arun mentioned that he wants to see that something is still happening and 
> therefore wants something printed.  I agree - but it should only print and 
> update one line total.
> 
> For example, if we wanted a progress monitor, that could look like this (this 
> should include all the dependencies in the same progress display):
> 
> $ guix package -i foobar
> Installing... [20%] \
>                     ^ Spinner that spins, say, every time a line is added to 
> the log file.
> 
> And later when progress is 100%, changing to
> 
> $ guix package -i foobar
> Installation successful
> $
> 
> I think that the detailed messages are good to have in the event that an 
> installation fails.  But even then it should just print a message like this 
> (and here, it really should print it):
> 
> $ guix package -i foobar
> Installation failed.  For more details, you can invoke "guix build --log-file 
> `guix build -d foobar`" (without double quotes).  In order to report a bug, 
> please send a message to <address@hidden>.
> $
> 
> Or it could invoke "guix build --log-file `guix build -d foobar`" on its own 
> and just print the resulting name.
>  
> It should NOT print the detailed messages automatically.
> 
> So all in all I'd really like much less verbosity on the console.  I actually 
> use guix behind a wrapper script of mine that supresses all non-error 
> messages for common cases (it redirects stdout to /dev/null) - and it's 
> *still* pretty bad.  I think that's because all the build output is printed 
> to stderr by build.scm , regardless of whether the container printed it to 
> stdout or stderr.  Is that correct?
> 
> Could we please make "guix package -i" use "guix build -q" to make stdout and 
> stderr go into the log files only?
> 
> Furthermore, I think even the guix download lines are too noisy in the 
> successful case.  Guix should really just update one line for the entire 
> thing, downloading, building, profile updating, everything.
> 
> The usual UNIX design, too, is that if everything works, UNIX prints nothing. 
>  As soon as something is printed my first feeling is that it's something bad 
> (especially with 20 pages :P).  And really, no one cares what the current gcc 
> command is - as long as it works.
> 
> If UNIX printed everything it did it would look very noisy and be very slow 
> (printing takes time).
> 
> I think "guix pull" is nice in this regard.  It just shows a progress bar.  
> Nothing else.  Because a normal user doesn't care that now it compiles 
> gnu/foo/bar.scm into e5y35334436743987463464363-foo/lib/afrewtew/tw/teww.
> 
> WDYT?
> 
> 

I agree to some extent. From a daily usage perspective, it is not nice.
Especially looking at it from where I originally started, slackware and 
slackware based systems,
it is too much. Simplicity is better than noise.
As a developer I appreciate the verbosity, seeing exactly *why*
the build failed.
I don't want that for people who just want to work with Guix or
GuixSD.
But as a developer I want the default to be to print exactly
this noise, so I must be able to override it globally or for
the process I run.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]