unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
@ 2021-05-21 12:58 Ludovic Courtès
  2021-05-21 13:28 ` Mathieu Othacehe
  0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2021-05-21 12:58 UTC (permalink / raw)
  To: 48564; +Cc: Mathieu Othacehe

Hello!

I wanted to try something like this:

--8<---------------cut here---------------start------------->8---
(use-modules (guix ci))

(list (channel-with-substitutes-available
       %default-guix-channel
       "https://ci.guix.gnu.org")
      (channel-with-substitutes-available
       (channel
        (name 'guix-hpc)
        (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git"))
       "https://guix.bordeaux.inria.fr"))
--8<---------------cut here---------------end--------------->8---

However, that doesn’t work because ‘channel-with-substitutes-available’
looks for a ‘guix.x86_64-linux’ job, which doesn’t exist on this Cuirass
instance.

Wouldn’t it be enough to look for the latest completed evaluation (of a
given jobset)?

Incidentally, it seems ‘complete?’ is always false:

--8<---------------cut here---------------start------------->8---
scheme@(guix ci)> (latest-evaluations "https://guix.bordeaux.inria.fr" 10)
$16 = (#<<evaluation> id: 88628 spec: "guix-past" complete?: #f checkouts: (#<<checkout> commit: "065d2cd6ced96ddb38c15a46f798488f61660a33" channel: "guix">)> #<<evaluation> id: 88627 spec: "guix-hpc" complete?: #f checkouts: (#<<checkout> commit: "065d2cd6ced96ddb38c15a46f798488f61660a33" channel: "guix">)> #<<evaluation> id: 88584 spec: "guix-past" complete?: #f checkouts: (#<<checkout> commit: "fd5527407ff336c4af1c5511e19c0956720cd7aa" channel: "guix">)> #<<evaluation> id: 88583 spec: "guix-hpc" complete?: #f checkouts: (#<<checkout> commit: "fd5527407ff336c4af1c5511e19c0956720cd7aa" channel: "guix">)> #<<evaluation> id: 88470 spec: "guix-past" complete?: #f checkouts: (#<<checkout> commit: "2710df38b0c317bdc69c61c7775d8141eb214dd1" channel: "guix">)> #<<evaluation> id: 88469 spec: "guix-hpc" complete?: #f checkouts: (#<<checkout> commit: "2710df38b0c317bdc69c61c7775d8141eb214dd1" channel: "guix">)> #<<evaluation> id: 88442 spec: "guix-past" complete?: #f checkouts: (#<<checkout> commit: "83d21785a9fbc6a7e87435d437b2b3917f3a3b09" channel: "guix">)> #<<evaluation> id: 88441 spec: "guix-hpc" complete?: #f checkouts: (#<<checkout> commit: "83d21785a9fbc6a7e87435d437b2b3917f3a3b09" channel: "guix">)> #<<evaluation> id: 88186 spec: "guix-past" complete?: #f checkouts: (#<<checkout> commit: "061823da03add693df9c411fee9ccdcc7291f0ec" channel: "guix">)> #<<evaluation> id: 88185 spec: "guix-hpc" complete?: #f checkouts: (#<<checkout> commit: "061823da03add693df9c411fee9ccdcc7291f0ec" channel: "guix">)>)
--8<---------------cut here---------------end--------------->8---

Thoughts?

Ludo’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
  2021-05-21 12:58 bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names Ludovic Courtès
@ 2021-05-21 13:28 ` Mathieu Othacehe
  2021-05-21 14:30   ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Mathieu Othacehe @ 2021-05-21 13:28 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 48564


Hey Ludo,

> Wouldn’t it be enough to look for the latest completed evaluation (of a
> given jobset)?

I guess it would be enough but we would need to specify the jobset that
needs to be used, this way maybe:

--8<---------------cut here---------------start------------->8---
(define* (channel-with-substitutes-available chan url
                                             #:key
                                             (specification "master"))
--8<---------------cut here---------------end--------------->8---

this would also allow me to simplify this patchset:
https://issues.guix.gnu.org/47929.

WDYT?

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
  2021-05-21 13:28 ` Mathieu Othacehe
@ 2021-05-21 14:30   ` Ludovic Courtès
  2021-05-26 14:17     ` Mathieu Othacehe
  0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2021-05-21 14:30 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 48564

Hi,

Mathieu Othacehe <othacehe@gnu.org> skribis:

>> Wouldn’t it be enough to look for the latest completed evaluation (of a
>> given jobset)?
>
> I guess it would be enough but we would need to specify the jobset that
> needs to be used, this way maybe:
>
> (define* (channel-with-substitutes-available chan url
>                                              #:key
>                                              (specification "master"))

Sure, SGTM.

> this would also allow me to simplify this patchset:
> https://issues.guix.gnu.org/47929.

Oh nice, I had completely overlooked that one!  I’ll take a look.

Thank you,
Ludo’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
  2021-05-21 14:30   ` Ludovic Courtès
@ 2021-05-26 14:17     ` Mathieu Othacehe
  2021-05-27  9:20       ` Ludovic Courtès
  2021-05-27 20:34       ` zimoun
  0 siblings, 2 replies; 6+ messages in thread
From: Mathieu Othacehe @ 2021-05-26 14:17 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 48564


Hey Ludo,

>> (define* (channel-with-substitutes-available chan url
>>                                              #:key
>>                                              (specification "master"))
>

I have fixed the evaluation complete? field issue with
a2155f41f53eeb5000857e7160c5ad0916dc9bfa.

Regarding the idea we had, things are I fear a little more complex. If
we consider what you would like to achieve:

--8<---------------cut here---------------start------------->8---
(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"))
--8<---------------cut here---------------end--------------->8---

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:

--8<---------------cut here---------------start------------->8---
(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"))
--8<---------------cut here---------------end--------------->8---

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 :(

Mathieu




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
  2021-05-26 14:17     ` Mathieu Othacehe
@ 2021-05-27  9:20       ` Ludovic Courtès
  2021-05-27 20:34       ` zimoun
  1 sibling, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2021-05-27  9:20 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 48564

Heya,

Mathieu Othacehe <othacehe@gnu.org> 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’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names
  2021-05-26 14:17     ` Mathieu Othacehe
  2021-05-27  9:20       ` Ludovic Courtès
@ 2021-05-27 20:34       ` zimoun
  1 sibling, 0 replies; 6+ messages in thread
From: zimoun @ 2021-05-27 20:34 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: Ludovic Courtès, 48564

Hi,

On Wed, 26 May 2021 at 16:17, Mathieu Othacehe <othacehe@gnu.org> wrote:

> (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"))

FWIW, I do not know if ’channels-with-substitutes-available’ should take
a list of channels, but it should take a list of substitute servers.
For instance, the user should be allowed to provide (list
"https://ci.guix.gnu.org" "https://bayfront.guix.gnu.org") for the
channel %default-guix-channel.  And the default should be:

        (channels-with-substitutes-available
          %default-guix-channel
          %default-substitute-urls)

Then, for multi-channels, the substitute servers should be a list of
list, IMHO.  Although, in practise, currently, there is less substitute
servers than channels. ;-)


Cheers,
simon




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-05-27 20:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-21 12:58 bug#48564: ‘channel-with-substitutes-available’ makes assumptions about job names Ludovic Courtès
2021-05-21 13:28 ` Mathieu Othacehe
2021-05-21 14:30   ` Ludovic Courtès
2021-05-26 14:17     ` Mathieu Othacehe
2021-05-27  9:20       ` Ludovic Courtès
2021-05-27 20:34       ` zimoun

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).