GNU bug report logs - #38469
guix gc should keep around recent intermediate build ingredients by default

Previous Next

Package: guix;

Reported by: Robert Vollmert <rob <at> vllmrt.net>

Date: Tue, 3 Dec 2019 10:49:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38469 in the body.
You can then email your comments to 38469 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#38469; Package guix. (Tue, 03 Dec 2019 10:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Robert Vollmert <rob <at> vllmrt.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 03 Dec 2019 10:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: bug-guix <at> gnu.org
Subject: guix gc should keep around recent intermediate build ingredients by
 default
Date: Tue, 3 Dec 2019 11:48:16 +0100
[ This is a user/developer friendliness feature request. I’m not arguing
  that `guix gc` should do anything differently on a technical level, I’m
  just trying to argue that the default experience should be different. ]

Current situation:
  I use a forked guix repository as my default channel, which
  includes a number of slow-to-build Haskell packages. Now and
  then, I run out of disk space. So I call `guix gc`, which invariably
  removes the store paths involved in building my current system generation,
  so the next call to `guix system reconfigure` takes hours.

Desired situation:
  After calling `guix gc`, the paths that were involved in my last system
  build are still around, so reconfiguring doesn’t result in everything
  being rebuilt.

(If there’s some way I can achieve that now, perhaps by explicitly managing
some roots, or passing specific arguments to `guix gc`, I’d be happy to
know! I’d still argue that we should try to make this the default behaviour,
though.)





Information forwarded to bug-guix <at> gnu.org:
bug#38469; Package guix. (Tue, 03 Dec 2019 13:00:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Guillaume Le Vaillant <glv <at> posteo.net>
To: bug-guix <at> gnu.org
Cc: 38469 <at> debbugs.gnu.org
Subject: Re: bug#38469: guix gc should keep around recent intermediate build
 ingredients by default
Date: Tue, 03 Dec 2019 13:59:22 +0100
Robert Vollmert skribis:

> [ This is a user/developer friendliness feature request. I’m not arguing
>   that `guix gc` should do anything differently on a technical level, I’m
>   just trying to argue that the default experience should be different. ]
>
> Current situation:
>   I use a forked guix repository as my default channel, which
>   includes a number of slow-to-build Haskell packages. Now and
>   then, I run out of disk space. So I call `guix gc`, which invariably
>   removes the store paths involved in building my current system generation,
>   so the next call to `guix system reconfigure` takes hours.
>
> Desired situation:
>   After calling `guix gc`, the paths that were involved in my last system
>   build are still around, so reconfiguring doesn’t result in everything
>   being rebuilt.
>
> (If there’s some way I can achieve that now, perhaps by explicitly managing
> some roots, or passing specific arguments to `guix gc`, I’d be happy to
> know! I’d still argue that we should try to make this the default behaviour,
> though.)

Have you tried passing the options '--gc-keep-derivations=yes' and
'--gc-keep-outputs=yes' to guix-daemon?

In the operating-system definition, it would be something like:
--8<---------------cut here---------------start------------->8---
(services
   (cons* (service ...)
          [...]
          (modify-services %desktop-services
            (guix-service-type config =>
              (guix-configuration
               (inherit config)
               (extra-options '("--gc-keep-derivations=yes"
                                "--gc-keep-outputs=yes")))))))
--8<---------------cut here---------------end--------------->8---




Information forwarded to bug-guix <at> gnu.org:
bug#38469; Package guix. (Tue, 03 Dec 2019 13:00:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#38469; Package guix. (Tue, 03 Dec 2019 14:30:02 GMT) Full text and rfc822 format available.

Message #14 received at 38469 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: 38469 <at> debbugs.gnu.org
Subject: Re: bug#38469: guix gc should keep around recent intermediate build
Date: Tue, 3 Dec 2019 15:29:00 +0100
> Have you tried passing the options '--gc-keep-derivations=yes’ and
> '--gc-keep-outputs=yes' to guix-daemon?

I had not. I added that right now, and first tests seem to indicate
that this helps. Thanks!

Would it be a bad idea to make this the default?

Alternatively, how about some kind of developer config fragment that
would modify a system configuration with settings that are a good
idea for Guix development, if not general use? That might also include
things like setting the $%!^@!*^% guile backtrace columns variable
for guix-daemon.





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Tue, 10 Dec 2019 16:40:01 GMT) Full text and rfc822 format available.

Notification sent to Robert Vollmert <rob <at> vllmrt.net>:
bug acknowledged by developer. (Tue, 10 Dec 2019 16:40:01 GMT) Full text and rfc822 format available.

Message #19 received at 38469-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Robert Vollmert <rob <at> vllmrt.net>
Cc: 38469-done <at> debbugs.gnu.org
Subject: Re: bug#38469: guix gc should keep around recent intermediate build
Date: Tue, 10 Dec 2019 17:39:07 +0100
Hi,

Robert Vollmert <rob <at> vllmrt.net> skribis:

>> Have you tried passing the options '--gc-keep-derivations=yes’ and
>> '--gc-keep-outputs=yes' to guix-daemon?
>
> I had not. I added that right now, and first tests seem to indicate
> that this helps. Thanks!

Yes, I think these options are exactly what you want.

> Would it be a bad idea to make this the default?

I think the current defaults are more appropriate; after all, they
really allow “garbage” to be collected.

> Alternatively, how about some kind of developer config fragment that
> would modify a system configuration with settings that are a good
> idea for Guix development, if not general use? That might also include
> things like setting the $%!^@!*^% guile backtrace columns variable
> for guix-daemon.

I think what you’d want is to set COLUMNS within derivation, not “for
the daemon”.

So I don’t know, I’m sympathetic to the idea of developer settings in
Guix System, but I’m not sure what it could bring beyond these two
options.

In the meantime, I propose to close this bug and to discuss this
potential new feature separately.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 08 Jan 2020 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 159 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.