Open antifuchs opened 1 month ago
I did fix this in my personal fork of buildbot-nix by not scheduling the "skipped" builder for already-cached attributes. That costs a few seconds of (parallel) build time but it does result in correctly gcrooted artifacts, so that's worth it to me. Not sure if that is a valid solution for everyone, though.
The only thing we need to account for is the case, when the package is present in the remote cache but not locally, because nix-eval-jobs will set the isCached flag in any case. And for people with a remote cache, they rather not want things to be downloaded in that case.
Hm, yeah, that could be unpleasant. I'm also noticing that n-e-j is setting isCached on derivations that are not present in the local store but also aren't cached remotely, if the derivation had been built previously... so I'm hoping that gcroots will help at least work around that issue for now (:
okay so the behavior we want here is:
or
I noticed the following interaction that causes attrs to not get gcroot-ed when you would expect them to be:
This interaction has resulted in my check attrs getting new revisions several times, while the corresponding gcroot still points to versions multiple days out of date.
I think one way to potentially fix this would be to have the gcroot step run on the skipped builder also: It is slightly risky (the attr might be "unchanged" according to the scheduler but not be present in the store due to a mistimed gc run)... but this is already happening, I think.