On 10/7/26 18:49, Ludovic Courtès wrote:
Hi!

Hugo Buddelmeijer via <[email protected]> skribis:

This is really limiting my Guix contributions, because if I just 'guix
gc', I have to spend another week getting back to having the
python-team branch rebuild.

If I’m not mistaken, ‘python-team’ is being built by ci.guix.gnu.org,
right?  (If not, it should. :-))
I don't yet really understand what is build where and when, but python-team is high up in the merge queue, so at the moment I think it is being built.

But this is a question in general. I also don't want to gc all the compilers all the time.

And I now use one machine to build everything also for other systems, so I don't want those packages to be garbage collected either, even though they will never be used on that machine.

Basically, I want to always keep everything in the store that corresponds to the tip of master or the tip of python-team; I never want to collect those, because chances are high I'm going to need those packages later.

What I do is that I usually run ‘guix gc -F40G’ or similar to only GC as
much as strictly needed.

How does gc prioritize what to collect? I could not find that information, so I didn't dare to risk it. (Because the point is that I want to prevent it collecting certain things that are not live.)

Another tip: from the branch in question, you can do ‘guix build -r xyz
python-pytorch --no-grafts’ (replace ‘python-pytorch’ with any package
high in the stack) so that this package and its dependencies aren’t
GC’d.

That only works if `guix build` gets to the end. The problem is that packages in the middle of the graph fail, so no root is created. Finding and fixing those packages is the entire point, and I want my progress to persist.

Also, Python also used build inputs like rust, clang, llvm, zig, etc., and those dependencies are not captured by that command if I understand correctly.

So I'm now running 'guix build -r $PKG $PKG --no-grafts' for all 2700 packages I have already built, but it takes about 2 seconds per package, so it will take hours. So this is not something I can do before every `guix gc` either.


Reply via email to