From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: Re: User-Friendlyness of Guix and non-scaryness, printing messages Date: Sun, 28 May 2017 19:30:45 +0000 Message-ID: <20170528193045.jfmd3d5uf6plnlhy@abyayala> References: <87bbe3e5.AEAAKL2r-KIAAAAAAAAAAAOtUOAAAAACwQwAAAAAAAW9WABZGcQo@mailjet.com> <87y3tw4kw3.fsf@gnu.org> <87r2zfx0xt.fsf@gnu.org> <427678e8.AEUAKjfDcSgAAAAAAAAAAAPB0agAAAACwQwAAAAAAAW9WABZKceD@mailjet.com> <20170528204437.6dfd35c4@scratchpost.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45965) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dF3u4-0007mI-J7 for guix-devel@gnu.org; Sun, 28 May 2017 15:31:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dF3ty-0008JH-MS for guix-devel@gnu.org; Sun, 28 May 2017 15:31:04 -0400 Received: from aibo.runbox.com ([91.220.196.211]:35624) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dF3tx-0008J7-Fq for guix-devel@gnu.org; Sun, 28 May 2017 15:30:58 -0400 Content-Disposition: inline In-Reply-To: <20170528204437.6dfd35c4@scratchpost.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Danny Milosavljevic Cc: guix-devel@gnu.org 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 . > $ > > 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.