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

From: Marius Bakke <[email-masked]>
Date: Sat, 25 Jul 2020 17:05:08 +0200

Ludovic Courtès <[email-masked]> writes:

> 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’.

Right.

>> 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).

Ah, much better.

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

I'm happy with the 'find guix-channel?' trick for now.  Let's see if
other users report workflow issues before changing anything.  :-)