Subject: Re: bug#28743: guix package dry-run upgrade incorrect behaviour with verbosity

From: zimoun <[email-masked]>
Date: Thu, 16 Sep 2021 09:18:20 +0200

Hi,

This old bug [1] is about dry-run.  IIUC, it is not now fixed as shown
below.  However, there is another annoying thing about the option
’--verbosity’.

1: <http://issues.guix.gnu.org/issue/28743>

On Sun, 08 Oct 2017 at 10:06, Oleg Pykhalov <[email-masked]> wrote:
> [email-masked] (Ludovic Courtès) writes:

> Previous discussion thread and attached debugging files:
> https://lists.gnu.org/archive/html/help-guix/2017-10/msg00000.html
>
>
> After patching no new generation created.  But dry-run still shows
> available upgrades and that will be build some derivations.
>
>> I’ve pushed the above patch as eca16a3d1d9e6b2c064e0105c1015258bf2755f2.
>> Now we need to fix the UI side of things.

Let create a profile with a package without the grafts, then check the
update with dry-run, make the upgrade, check the dry-run upgrade again.
All seem fine, right?

--8<---------------cut here---------------start------------->8---
$ guix package -i r-shiny -p /tmp/foo --no-grafts 2>/dev/null
$ guix package -p /tmp/foo --upgrade --dry-run
The following package would be upgraded:
   r-shiny (dependencies or package changed)

The following derivation would be built:
   /gnu/store/bqsnn9k5jw3gklbzkzhknqpfikvl3bdy-profile.drv

$ guix package -p /tmp/foo --list-generations
Generation 1	Sep 16 2021 09:04:48	(current)
  r-shiny	1.6.0	out	/gnu/store/gq31n44a6b815xlrh0zph6vwc7wqqw8c-r-shiny-1.6.0

$ guix package -p /tmp/foo --upgrade --dry-run
The following package would be upgraded:
   r-shiny (dependencies or package changed)

The following derivation would be built:
   /gnu/store/bqsnn9k5jw3gklbzkzhknqpfikvl3bdy-profile.drv

$ guix package -p /tmp/foo --upgrade
The following package will be upgraded:
   r-shiny (dependencies or package changed)

The following derivation will be built:
   /gnu/store/bqsnn9k5jw3gklbzkzhknqpfikvl3bdy-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building database for manual pages...
building profile with 1 package...

$ guix package -p /tmp/foo --list-generations
Generation 1	Sep 16 2021 09:04:48
  r-shiny	1.6.0	out	/gnu/store/gq31n44a6b815xlrh0zph6vwc7wqqw8c-r-shiny-1.6.0

Generation 2	Sep 16 2021 09:06:05	(current)

$ guix package -p /tmp/foo --upgrade --dry-run
guix package: warning: nothing to do
--8<---------------cut here---------------end--------------->8---

However, let do the same thing with the option ’--verbosity=2’ (equal
deprecated ’--verbose’).

--8<---------------cut here---------------start------------->8---
$ rm -fr /tmp/foo*
$ guix package -i r-shiny -p /tmp/foo --no-grafts 2>/dev/null
$ guix package -p /tmp/foo --upgrade --dry-run --verbosity=2
The following package would be upgraded:
   r-shiny (dependencies or package changed)

$ guix package -p /tmp/foo --list-generations
Generation 1	Sep 16 2021 09:04:48
  r-shiny	1.6.0	out	/gnu/store/gq31n44a6b815xlrh0zph6vwc7wqqw8c-r-shiny-1.6.0

Generation 2	Sep 16 2021 09:06:05	(current)

$ guix package -p /tmp/foo --upgrade --verbosity=2
guix package: warning: nothing to do
--8<---------------cut here---------------end--------------->8---

Et voilà!  Still a bug.  Same with any other ’verbosity’ value.

All the best,
simon