unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Roel Janssen <roel@gnu.org>
To: Leo Famulari <leo@famulari.name>
Cc: guix-devel@gnu.org
Subject: Re: User-Friendlyness of Guix and non-scaryness, printing messages
Date: Tue, 30 May 2017 10:17:24 +0200	[thread overview]
Message-ID: <rbuefv669nv.fsf@gnu.org> (raw)
In-Reply-To: <20170528192058.GF15883@jasmine>


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

  parent reply	other threads:[~2017-05-30  8:17 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87bbe3e5.AEAAKL2r-KIAAAAAAAAAAAOtUOAAAAACwQwAAAAAAAW9WABZGcQo@mailjet.com>
     [not found] ` <87y3tw4kw3.fsf@gnu.org>
     [not found]   ` <fcac084e.AEEAKxWCyNIAAAAAAAAAAAOzWv8AAAACwQwAAAAAAAW9WABZH1iD@mailjet.com>
     [not found]     ` <87r2zfx0xt.fsf@gnu.org>
     [not found]       ` <427678e8.AEUAKjfDcSgAAAAAAAAAAAPB0agAAAACwQwAAAAAAAW9WABZKceD@mailjet.com>
2017-05-28 18:44         ` User-Friendlyness of Guix and non-scaryness, printing messages Danny Milosavljevic
2017-05-28 19:01           ` Danny Milosavljevic
2017-05-28 20:35             ` Danny Milosavljevic
2017-05-28 20:58               ` Danny Milosavljevic
2017-05-30 15:11                 ` Ludovic Courtès
2017-05-28 19:20           ` Leo Famulari
2017-05-28 19:40             ` Danny Milosavljevic
2017-05-28 19:47               ` Leo Famulari
2017-05-28 21:12               ` Ludovic Courtès
2017-05-31 22:26                 ` Danny Milosavljevic
2017-06-01 21:41                   ` Ludovic Courtès
2017-05-30  8:24               ` Ricardo Wurmus
2017-06-16 11:42                 ` Danny Milosavljevic
2017-06-17 20:16                   ` Ludovic Courtès
2017-05-30  1:47             ` "guix system" summary output? Danny Milosavljevic
2017-05-30 11:05               ` Danny Milosavljevic
2017-05-30 15:47               ` Ludovic Courtès
2017-05-30  8:17             ` Roel Janssen [this message]
2017-05-30 13:56               ` User-Friendlyness of Guix and non-scaryness, printing messages Arun Isaac
2017-05-30 14:32                 ` Christopher Allan Webber
2017-05-30 15:58                   ` Arun Isaac
2017-05-30 15:13                 ` Ludovic Courtès
2017-05-28 19:30           ` ng0

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=rbuefv669nv.fsf@gnu.org \
    --to=roel@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=leo@famulari.name \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).