Subject: [bug#42481] [PATCH 0/2] Printing a more concise build plan

From: Ludovic Courtès <[email-masked]>
Date: Wed, 22 Jul 2020 23:40:18 +0200

Hello Guix!

These patches implement a suggestion Pierre made a while back:
showing by default fewer details about what will/would be built
or downloaded, and omitting info about grafts and hooks.

The verbosity level here is controlled via the existing
‘--verbosity’ or ‘-v’ flag (which thus now control two things).

Here are examples of the result:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix system disk-image --target=i586-pc-gnu gnu/system/examples/bare-hurd.tmpl -n --no-grafts
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivations would be built:
   /gnu/store/y2inlprxbigqvknm5qwjwsqgljxfbri4-disk-image.drv
   /gnu/store/gclxh7i8smp71hz0p7wcj6qkf377wigy-image-dir.drv
   /gnu/store/21fin1j5pnjzfwbc70wdpzl3iyjym8xp-genimage.cfg.drv
   /gnu/store/aqcziad6ghfaainjibpdfypc8m2rr1vm-partition.img.drv
   /gnu/store/484d4fd9q9827bc09ia8bi1dgxl8gpwn-grub.cfg.drv
   /gnu/store/nnldmy339w9xxnybir48w14yz2xk0pmx-system.drv

[...]

   /gnu/store/ddxz08xvasphckdralifb624y3c7hrkx-rc.drv
   /gnu/store/kq9qvn0m063m02cxf4kjipkf6x8vbvip-profile.drv
   /gnu/store/y9if6nrykcqfnzxvb4cci2nzhmz1ipx5-parameters.drv
   /gnu/store/w09j0p6126qcacylb455m5dn008yi04g-module-import.drv
49.9 MB would be downloaded
--8<---------------cut here---------------end--------------->8---

Same with grafts:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix system disk-image --target=i586-pc-gnu gnu/system/examples/bare-hurd.tmpl -n
36.2 MB would be downloaded
--8<---------------cut here---------------end--------------->8---

With ‘guix package’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix install vim-full krita -n
The following packages would be installed:
   vim-full 8.2.1145
   krita    4.2.9

76.9 MB would be downloaded
$ ./pre-inst-env guix install vim-full krita -n --no-grafts
The following packages would be installed:
   vim-full 8.2.1145
   krita    4.2.9

The following derivation would be built:
   /gnu/store/shf0anw8l0y9hg4l8qp1fym4bvwq5kh9-profile.drv
76.9 MB would be downloaded
$ ./pre-inst-env guix install inkscape hugin -n
The following package would be upgraded:
   inkscape (dependencies or package changed)

The following package would be installed:
   hugin 2019.2.0

The following derivation would be built:
   /gnu/store/lsi56ap8lzchfy8y76y7wirzfiqvb3ca-hugin-2019.2.0.drv
46.2 MB would be downloaded
--8<---------------cut here---------------end--------------->8---

The current behavior is obtain with ‘-v2’, which remains the
default for ‘guix build’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build inkscape hugin -n
The following derivation would be built:
   /gnu/store/lsi56ap8lzchfy8y76y7wirzfiqvb3ca-hugin-2019.2.0.drv
46.2 MB would be downloaded:
   /gnu/store/3jvjmwm0srgxxjwngv28bif8l4ksfbnp-autotrace-0.40.0-20190624.59
   /gnu/store/gg36g9h2nzmq4dzrcr21ndb09nybqys0-inkscape-1.0
   /gnu/store/n94n0ggdhck5a2prsd1r468x3p6i68p4-enblend-enfuse-4.2
   /gnu/store/89rj5fqcg48afgk99639ds602pgf92k4-cmake-minimal-3.16.5
   /gnu/store/0i4h5cf1a71pj319svzz88g2z07cvdk3-wxwidgets-3.0.5.1
   /gnu/store/bwz9f0lg9lxscj6jfcgxmzqng3s1f1n3-vigra-1.11.1
--8<---------------cut here---------------end--------------->8---

It’s also possible to use ‘-v0’ now.

How does that sound?

Personally, I’m find it a bit disconcerting that so few is displayed
when substitutes are available, but it also feels more “lightweight”
this way.  I really like that what would be built appears clearly,
whereas now you have to scroll up possibly several pages to find
that info, especially upon ‘guix upgrade’.

Feedback welcome!

Ludo’.

Ludovic Courtès (2):
  ui: Add #:verbosity to 'show-what-to-build'.
  scripts: Pass #:verbosity to 'build-notifier'.

 guix/scripts/archive.scm     |   2 +
 guix/scripts/build.scm       |   2 +
 guix/scripts/copy.scm        |   2 +
 guix/scripts/deploy.scm      |   4 +-
 guix/scripts/environment.scm |   2 +
 guix/scripts/pack.scm        |   2 +
 guix/scripts/package.scm     |   2 +
 guix/scripts/pull.scm        |   2 +
 guix/scripts/system.scm      |  11 ++-
 guix/ui.scm                  | 175 ++++++++++++++++++++++-------------
 10 files changed, 135 insertions(+), 69 deletions(-)

-- 
2.27.0