Subject: Re: [bug#42030] [PATCH] channels: Error out when the 'guix' channel lacks an introduction.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 29 Jun 2020 17:14:40 +0200

Hi!

Marius Bakke <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> writes:
>
>>> I think we should export %guix-channel-introduction, or alternatively
>>> add a %default-guix-channel that can be inherited, for easy access in
>>> custom channels.scm files.  WDYT?
>>
>> The idea was to expose only ‘%default-channels’, which leaves room for
>> the possibility of having multiple channels by default.  I’d rather
>> avoid exposing the individual bits as that’s a bit of an additional
>> committment.
>>
>> But note that the introduction of the “official” guix channel is
>> automatically added anyway (commit
>> c3f6f564e909ebefe752d24b325871a4e3a02d40).
>
> It is only added for people using the default channel URL, and not for
> local mirrors that may well be authenticated.  E.g. (url "/some/dir") or
> (url "https://github.com/guix-mirror/guix").
>
> Would it make sense to remove the %default-channel-url check from
> ensure-default-introductions?  I think we can safely assume that a
> channel named 'guix is _the_ Guix channel regardless of where it came
> from, and if users need to override the introduction they can just do
> that.

I don’t think we can do that: if someone who’s not currently a committer
wants to publish a fork, they’ll also publish a different introduction,
pointing to the first commit where they’re in ‘.guix-authorizations’.

> Currently I do this to access the channel introduction, which seems
> needlessly complicated:
>
> (use-modules (srfi srfi-1))
> (let ((guix-channel (find (lambda (channel)
>                             (eq? 'guix (channel-name channel)))
>                           %default-channels)))

You can write: (find guix-channel? %default-channels).

>   (list [other channels omitted]
>         (channel
>          (inherit guix-channel)
>          (url "/home/marius/src/guix"))))

I’m hesitant.  We can publish ‘%guix-channel-introduction’ if it helps,
but it’s a slight maintenance constraint for a slight improvement.  :-)
WDYT?

Ludo’.