[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.
- Re: User-Friendlyness of Guix and non-scaryness, printing messages, (continued)
Re: User-Friendlyness of Guix and non-scaryness, printing messages,
ng0 <=