Subject: [bug#41882] [PATCH] channels: Allow specifying per-channel --allow-downgrades in the channel file

From: Ludovic Courtès <[email-masked]>
Date: Wed, 17 Jun 2020 11:27:44 +0200

Hi Jakub,

Jakub Kądziołka <[email-masked]> skribis:

> * guix/channels.scm (<channel>)
>   [allow-unrelated?, allow-downgrade?]: New fields.
>   (ensure-forward-channel-update): Handle the fields appropriately.
> ---
>  guix/channels.scm | 5 +++++
>  1 file changed, 5 insertions(+)
>
> Some time ago, guix pull started verifying that the new commit follows
> the old commit in the git history. That's good in the common case, but
> unfortunately, this broke my workflow [0].

:-)

> Namely, I maintain a branch of the guix repository on which I
> cherry-pick some commits that haven't hit master yet. I rebase it onto
> master frequently.

I see; this is similar to what John reported in
<https://issues.guix.gnu.org/41604>.

> It gets tiring to have to specify --allow-downgrades when pulling, so I
> added a way of specifying it in the channels file. As a bonus, it's more
> granular.
>
> If this is the right approach, I'll add some docs. Also, is there a test
> that exercises this function?

I don’t think “allow-downgrade?” should be a property of <channel>,
because conceptually it’s an unrelated piece of configuration.  So I
think it’s configuration that belongs elsewhere, but there’s no
configuration file for ‘guix pull’ etc.

It may be that setting GUIX_BUILD_OPTIONS=--allow-downgrades actually
works, though it’s a bit of a hack.

Thoughts?

Thanks,
Ludo’.