Subject: Re: bug#28310: guix build -n misses package builds
From: Ludovic Courtès <[email-masked]>
To: Andreas Enge <[email-masked]>
Cc: [email-masked]
Date: Sun, 22 Mar 2020 12:48:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

[email-masked] (Ludovic Courtès) skribis:

> Andreas Enge <[email-masked]> skribis:
>
>> I am right now in the process of updating pari-gp to version 2.9.3.
>> After building it on a git check-out of three days ago, which went smoothly,
>> I rebased my patch on today's master and was pleased to see that no rebuild
>> was needed:
>>
>> $ ./pre-inst-env guix build pari-gp -n
>> outputs nothing.
>>
>> However, once the -n dropped, the gd package gets built.
>> And then it is starting ruby, which has no connection to pari-gp:
>> Downloading https://mirror.hydra.gnu.org/guix/nar/229n3pzp5bdmbdvwslg0dxliysas92k5-ruby-2.4.1.tar.xz...
>>    ruby-2.4.1.tar.xz  9.5MiB                                                                                                       22KiB/s 00:06 [                    ]   1.3%^
>
> “-n” now implies “--no-grafts” (commit
> fd59105c49965db956fac73c68d8b00d068f5d5c).  This was motivated by the
> need to have -n really perform a dry run.
>
> The downside is that with -n we now see only half of the build plan, and
> when we remove -n, we start with the other half of the build plan,
> grafting.

This is now fixed with this patch series:

  https://issues.guix.gnu.org/issue/40130

It does mean that “The following derivations will be built” can be
printed several times during a build.  That’s a natural consequence of
having dynamic dependencies (grafts) in the graph: we can’t always
statically determine what’s going to be built.

> The “build continuation” idea of ‘wip-gexp-grafts’, discussed in
> <https://bugs.gnu.org/22990>, could in theory help with that.

‘with-build-handler’ also has to do with continuations, only in a
different way.  :-)

Ludo’.