Subject: [PATCH 0/5] Display a progress bar for on-going builds
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Ludovic Courtès <[email-masked]>
Date: Sun, 27 Jan 2019 23:14:50 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

Some build tools (CMake, Ninja, GHC, etc.) emit progress reports
like “[ 3/42]”.  This patch series is about making use of them
to display a progress bar for on-going builds on --verbosity=1.

This can be tested for example with ‘ghc-libmpd’, ‘hugin’,
‘libinput’, or with our ‘module-import-compiled.drv’.  With
‘libinput’ and ‘hugin’ you get a second progress bar starting
anew for the tests, but that’s reasonable I think.  Eventually,
we could prefix the progress bar by the name of the build phase.

The completion percentage is kept in <build> records referenced
by the <build-status> record.  Then we simply display it as
needed.  (guix self) will now also emit appropriate progress
reports so that ‘guix pull -v1’ is able to print progress bars.

(I had initially implemented it with <build-status> unchanged
and arranged to do the regexp-matching dance only upon ‘-v1’,
but the implementation turned out to be somewhat ugly and it’s
probably OK to regexp-exec build output lines in general—we
already do it for colorization anyway.)

Feedback welcome!

Ludo’.

Ludovic Courtès (5):
  status: Record more information about builds.
  status: Keep track of build completion as reported by build tools.
  status: Print a progress bar for on-going builds when possible.
  self: Produce progress reports compatible with (guix status).
  pull: Default to verbosity level 1.

 guix/scripts/pull.scm |   2 +-
 guix/self.scm         |  18 +++--
 guix/status.scm       | 157 +++++++++++++++++++++++++++++++++++-------
 tests/status.scm      |  59 ++++++++++++----
 4 files changed, 195 insertions(+), 41 deletions(-)

-- 
2.20.1