[Top][All Lists]

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

[debbugs-tracker] bug#32837: closed ([PATCH 0/5] Improvements to the UI

From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#32837: closed ([PATCH 0/5] Improvements to the UI with colors)
Date: Thu, 27 Sep 2018 22:33:02 +0000

Your message dated Fri, 28 Sep 2018 00:31:39 +0200
with message-id <address@hidden>
and subject line Re: [bug#32837] [PATCH 0/5] Improvements to the UI with colors
has caused the debbugs.gnu.org bug report #32837,
regarding [PATCH 0/5] Improvements to the UI with colors
to be marked as done.

(If you believe you have received this mail in error, please contact

32837: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32837
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH 0/5] Improvements to the UI with colors Date: Tue, 25 Sep 2018 17:11:40 +0200
Hello Guix!

This is a followup to the UI work by Sahithi and Ricardo:


The output of ‘guix build’ is almost the same as on ‘master’.

The main difference is for ‘guix package’: downloads URLs are
now displayed, “updating substitutes from URL” messages and
download progress bars are back, both for substitutes and for
‘url-fetch’ kind of downloads, and max-jobs > 1 is reasonably
well handled.  Upon failure the file name of the build log
is printed.

‘guix pack’ and ‘guix environment’ produce output similar to
that of ‘guix build’ (that is, build logs are shown.)  ‘guix system
{init,reconfigure}’ produce concise output similar to ‘guix package’.
Other ‘guix system’ sub-commands produce verbose output like
‘guix build’.

Internally everything is handled by the (guix status) module.
This module keeps track of the on-going and completed builds and
downloads (substitutes and fixed-output derivations.)  To do that
the build side is modified to print additional machine-readable
“build traces” (with the new #:print-extended-build-traces? option
of ‘set-build-options’.)

Old clients talking to the new daemon won’t see the difference
because build-side code will produce the same output as before.
New clients talking to an old daemon won’t be able to display
progress bars and URLs for downloads because the build side
won’t produce those “extended build traces”; IOW, it should be
as on current ‘master’.

It would be great if people could give it a try and report back!
You’ll have to run:

  guix pull --branch=wip-ui

and then you can try building things with and without substitutes,
with ‘guix package’, with ‘guix build’, etc.

If we agree on the mechanism, then we can always fine-tune the
output later.


Ludovic Courtès (5):
  progress: 'progress-reporter-report!' takes any number of arguments.
  substitute: Progress port really closes underlying port.
  progress: Add 'display-download-progress'.
  Add (guix status) and use it for pretty colored output.
  perform-download: Optionally report a "download-progress" trace.

 .dir-locals.el                    |   1 +
 Makefile.am                       |   2 +
 guix/build/download.scm           |  31 +-
 guix/progress.scm                 | 106 ++++---
 guix/scripts/build.scm            |  15 +-
 guix/scripts/environment.scm      | 110 +++----
 guix/scripts/pack.scm             | 140 ++++-----
 guix/scripts/package.scm          |  24 +-
 guix/scripts/perform-download.scm |  17 +-
 guix/scripts/substitute.scm       |  44 ++-
 guix/scripts/system.scm           |  11 +-
 guix/status.scm                   | 463 ++++++++++++++++++++++++++++++
 guix/store.scm                    |  14 +-
 guix/ui.scm                       | 108 +------
 nix/libstore/builtins.cc          |   5 +-
 po/guix/POTFILES.in               |   1 +
 tests/status.scm                  | 115 ++++++++
 17 files changed, 901 insertions(+), 306 deletions(-)
 create mode 100644 guix/status.scm
 create mode 100644 tests/status.scm


--- End Message ---
--- Begin Message --- Subject: Re: [bug#32837] [PATCH 0/5] Improvements to the UI with colors Date: Fri, 28 Sep 2018 00:31:39 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Ricardo Wurmus <address@hidden> skribis:

>> Let me know what you think!  I’d be happy to go ahead with this variant
>> soon.  :-)
> I really like this patch series.  It implements a very flexible
> mechanism that allows us to track the build state more accurately.  In
> fact, it would enable a GUI developer to display the build progress in
> an intuitive way that is a few steps removed from the raw build log
> style.

Yeah, that’s my hope too.  We would need Fibers/coroutines to make a
neat (G)UI, and also better multiplexing of build logs when max-jobs > 1
(the “extended build traces” are not full proof: we can’t guarantee
they’ll appear at the beginning of a line currently), but it’s a first

> I noticed a few typos in patch 4/5:


Thanks Danny for reviewing, and thank you Ricardo for reviewing,
testing, and for the suggestions, which led to a much improved patch!

> As to the way we display build progress: we can improve on that later.
> The mechanism proposed in this patch series is very nice and I’d love to
> see it merged soon.

I have a snippet here to estimate build time based on past build logs,
we’ll see…

I’ve pushed the patches as 240a9c69a6064544a616acc521c993542c364948,
with a daemon update in 5abcb1b0e6fe849d206b3683444c76d91f21a3d4.

Bug reports & suggestions welcome!


--- End Message ---

reply via email to

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