Subject: bug#40612: guix build system --dry-run is broken

From: Ludovic Courtès <[email-masked]>
Date: Tue, 21 Apr 2020 16:48:08 +0200

Hi,

Mark H Weaver <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> wrote:
>> Mark H Weaver <[email-masked]> skribis:
>>
>>> Yes, of course, I agree that it's not possible to present a build plan
>>> ahead of time when grafts are enabled.  That was the case before these
>>> changes, and it's the case today.
>>>
>>> The only part I don't understand is why you decided that "--dry-run"
>>> should no longer imply "--no-grafts".  Does it work better for other
>>> people?  For me, the "--dry-run" output has become utterly useless
>>> unless "--no-grafts" is included.
>>
>> I explained the pros and cons of having ‘--dry-run’ no longer implying
>> ‘--with-grafts’ here:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00337.html
>
> I read that message, but was unable to find any mention of the 'pros' of
> having '--dry-run' no longer imply '--no-grafts'.  Did I miss it?  I
> still don't know what is the argument in favor of that change.

The “pro” is not there, you’re right.  It’s basically about eliminating
a special case.  The ideal would be that the special case is unnecessary
and grafts can be considered a special case of dynamic dependencies.

I’m not saying we’re there yet, I pointed out weaknesses and you found
other instances, but that’s the general direction I wanted to take.

>> ‘guix package --dry-run’ overall works well IME, except when a
>> dependency of a fixed-output derivation is missing, as explained above.
>>
>> ‘guix system’ doesn’t work so well as you note (though again, that
>> depends on what you’re building vs. what you have in store).
>
> For what it's worth, I've found the --dry-run output to be similarly
> useless when rebuilding my user profile as well.

Not for me, but we could look at specific examples.

Whether substitutes are used makes no difference, which is an
improvement compared to the previous situation!

Thanks for your feedback,
Ludo’.