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: Roel Janssen
Subject: Re: User-Friendlyness of Guix and non-scaryness, printing messages
Date: Tue, 30 May 2017 10:17:24 +0200
User-agent: mu4e 0.9.18; emacs 25.2.1

Leo Famulari writes:

> On Sun, May 28, 2017 at 08:44:44PM +0200, Danny Milosavljevic wrote:
>> Ideally, a successful build & installation of a package should look
>> like this:
>> 
>> $ guix package -i foobar
>> $ 
>
> Silence is golden!
>
>> 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
>> ...aphics/opentype 
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/graphics/transforms
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/mediastream
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/mediastream/libwebrtc
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/mock
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/mock/mediasource
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/network
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/sql
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/text
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/platform/text/icu
>>  
>> -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/Source/WebCore/plugins
>>  -I/tmp/guix-build-webkitgtk-2.16.3.drv-0/webkitgtk-2.16.3/
>
> This sample omits the most useful output, which is the summary of what
> will be done. In my opinion, a successful run of `guix package` should
> either print this summary and the name of the new generation, or be as
> verbose as it is now.
>
>> 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.
>> 
> Perhaps for `guix package`, but I disagree for `guix build` and others.
> It prints *only* the new store items on stdout, and this makes it very
> easy to compose Guix commands. We should not break this.

I agree.  'guix build' should be as verbose as it is now.  It is
actually very useful for detecting little things like missing
dependencies or wrong configuration options when building a package.

But I think 'guix package' can be made a lot more user-friendly by not
showing the build output (by default).  The summary of what will be
installed, and some progress indicator or at least something moving to
show the user it's doing something, and eventually the success or
failure message is enough.

You know what would be cool?  A progress indicator like so:

Building derivation 6 of 110..

With '6' progressing up to '110' as soon as a build succeeds.

It would be much more useful to me than to see these g++ commands (when
installing programs).

>> 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.
>
> I understand that your colleagues share your opinion, but they are few,
> and don't even use Guix, so we should not take this small sample too
> seriously. We can all look at the interfaces of software or machines
> that we don't use and feel confused, but this feeling doesn't mean very
> much, in my opinion. I remember being mystified by car dashboards as
> child. Since I learned to drive, I never think twice about them, and I
> drive different cars and trucks often.
>
> Command-line interfaces are not suitable for usage by "non-technical
> users" anyways; they demand a GUI. Most of us are comfortable on the
> command-line, but we should not forget that we are in an extremely small
> minority. It would be great if everyone could learn to use their
> computers with the command-line, which offers great power and
> flexibility, but it's not a realistic goal, especially as new computer
> users eschew "real" computers in favor of mobile phones.

But at least we can try to make them more non-technical-user-friendly
wherever it doesn't hurt us.  And I think 'guix package' is such a
case.

We are also hiding a lot of information on 'guix package
--list-generations', because we only display the difference between two
generations.   I think it looks much better in practice than it did
before.

> So, I'm wary of sacrificing a flexible and powerful CLI on behalf of
> users who really will never use a CLI. Now, I'm not saying there is
> nothing to improve. Rather, I'm saying that the existing Guix CLI is
> pretty good, and we should be careful about changing it.

I don't think we are making the CLI less powerful by not showing the
build output in the 'guix package' command.  When the build fails, you
can review the build log.  And a failure is something you don't expect
when you are installing packages.  That's something we use 'guix build'
for.

Kind regards,
Roel Janssen



reply via email to

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