On 08-09-2022 13:11, zimoun wrote:
Toggle quote (15 lines)
> Hi Maxime,
>
> On Thu, 08 Sep 2022 at 11:23, Maxime Devos <maximedevos@telenet.be> wrote:
>
>> Looking at 'latest-channel-instances', the code for deciding what the
>> latest version is, is the same for the guix channel and any other
>> channel. As such, the 'Guix is unavailable' is, currently, not special.
> Well, ’latest-channel-instances’ relies on ’latest-channel-instance’
> which tests ’guix-channel?’,
>
> --8<---------------cut here---------------start------------->8---
> (define (guix-channel? channel)
> "Return true if CHANNEL is the 'guix' channel."
> (eq? 'guix (channel-name channel)))
> --8<---------------cut here---------------end--------------->8---
That's only for channel authentication and patches, not relevant for
this bug#57559.
Toggle quote (19 lines)
> then, for instance, the occurrences are:
>
> --8<---------------cut here---------------start------------->8---
> 12 candidates:
> ./guix/channels.scm:79: guix-channel?
> ./guix/channels.scm:192:(define (guix-channel? channel)
> ./guix/channels.scm:199: (if (and (guix-channel? chan)
> ./guix/channels.scm:424: (when (guix-channel? channel)
> ./guix/channels.scm:437: (when (guix-channel? channel)
> ./guix/channels.scm:778: (guix-channel? (channel-instance-channel instance)))
> ./guix/channels.scm:903: (item (if (guix-channel? channel)
> ./guix/scripts/pull.scm:775: (match (find guix-channel? channels)
> ./guix/scripts/pull.scm:788: (remove guix-channel? channels))))
> ./gnu/packages/package-management.scm:125: guix-channel?
> ./gnu/packages/package-management.scm:618: (delay (match (or (find guix-channel? (current-channels))
> ./gnu/ci.scm:478: (find guix-channel? channels))
> --8<---------------cut here---------------end--------------->8---
>
> And my point is that the Guix channel is special when pulling.
It is special for some things, yes, but it isn't special for deciding
what is the latest version. These occurrences are for channel
authentication,
patching, building, Cuirass and the 'guix' package, not for deciding
what is to be considered the latest available version of the channel
Toggle quote (3 lines)
> Therefore, we could split the cases when the Guix channel is unreachable
> and when other extra-channels are unreachable; because the impact are
> different, IMHO.
In principle, we could, but I don't see the point. Solving things for
the case
where the unavailable channel is Guix is no more complicated than for other
channels.
Toggle quote (2 lines)
> As I pointed earlier in the thread, the main issue is when these extra
> channels are unreachable; as André have initially reported.
This might be the main issue, yes, but I still don't see the point of
treating
'guix' specially for the puposes of #57559. It would make the semantics of
"guix pull" and its implementation more complex, for no apparent purpose
AFAICT (solving the general issue would solve the main issue, right?).
About the complexity of the implementation: as mentioned previously,
latest-channel-instances doesn't treat the Guix channel specially
(the authentication check and patches isn't relevant here), so adding an
additional (if (guix-channel?) ...) would add complexity (and hence, require
additional testing and maybe documentation).
Greetings,
Maxime.