Hi Ludovic, Ludovic Courtès <l...@gnu.org> writes:
> Actually, I was also wondering whether we should provide a configurable > mechanism that would, by default, automatically delete old GC roots and > maybe even run the GC automatically when needed—similar to what Git > does. > > Thoughts? I think it's reasonable to automatically run GC by default, but I would strongly advise against deleting GC roots automatically by default without the user's knowledge and consent. It's certainly true that git performs GC automatically, but does it automatically delete GC roots by default? I've never seen it do this, and I would be surprised and angry if it did. I consider Guix GC roots to be potentially valuable user data, regardless of age. For example, an old GC root might be valuable because it was used to perform an experiment that should be repeatable, or because it is known to work reliably for a given job, and newer versions have not yet been tested. I, for one, expect my old profiles, system generations, and other GC roots to be kept unless I explicitly delete them, and I suspect I'm not alone. If I hadn't been paying close attention to Guix development, and later discovered that Guix had deleted my GC roots without my consent, I would be surprised and angry. For these reasons, I think we should not automatically delete GC roots without the user's knowledge and consent. User consent could be inferred by a configuration change, or perhaps obtained interactively by printing a warning and asking the user to give their explicit consent. What do you think? Thanks, Mark