Subject: bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names

From: Ludovic Courtès <[email-masked]>
Date: Thu, 27 May 2021 11:20:41 +0200

Heya,

Mathieu Othacehe <[email-masked]> skribis:

>>> (define* (channel-with-substitutes-available chan url
>>>                                              #:key
>>>                                              (specification "master"))
>>
>
> I have fixed the evaluation complete? field issue with
> a2155f41f53eeb5000857e7160c5ad0916dc9bfa.

Good catch!

> Regarding the idea we had, things are I fear a little more complex. If
> we consider what you would like to achieve:
>
> (list (channel-with-substitutes-available
>        %default-guix-channel
>        "https://ci.guix.gnu.org"
>        #:spec "master")
>       (channel-with-substitutes-available
>        (channel
>         (name 'guix-hpc)
>         (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git"))
>        "https://guix.bordeaux.inria.fr"
>        #:spec "guix-hpc"))
>
>
> The first channel-with-substitutes-available could use the commit M1
> from the Savannah Guix master branch, while the second
> channel-with-substitutes-available could use the commit H1 from the
> HPC gitlab master branch.
>
> If the commit H1 is evaluated by the Inria Cuirass against an older
> Savannah Guix master commit let say M2, then "guix pull" will rebuild
> the guix-hpc derivation I guess.
>
> Maybe we need something that looks like:
>
> (channels-with-substitutes-available
>  (list %default-guix-channel
>        (channel
>         (name 'guix-hpc)
>         (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")))
>  (list "https://ci.guix.gnu.org"
>        "https://guix.bordeaux.inria.fr")
>  (specs "master" "guix-hpc"))
>
> that would make sure to use a couple of Guix and HPC commits that
> have been evaluated together on the Inria Cuirass server.
>
> This looks more complex though :(

Hmm yeah.  Actually, in this example, it would make sense to take both
commits from guix.bordeaux.inria.fr, since that instance necessarily has
info about the two channels.  But yeah, it remains a bit complex.

Thanks,
Ludo’.