Subject: bug#57306: guix pull to old commit fails due to unsupported manifest format

From: zimoun <[email-masked]>
Date: Thu, 01 Sep 2022 10:50:44 +0200

Hi Ludo,

Thanks for explaining.

On Thu, 01 Sep 2022 at 09:42, Ludovic Courtès <[email-masked]> wrote:

>> It means version 3 is used all the time, right?
>
> Yes.
>
>> Well, I miss when or where version 4 is used then.
>
> Generations that were created with a slightly older Guix have a
> version-4 manifest.

It means that the manifest of ~/.config/current is fixed “forever“ to
version 3.  And version 4 is only used by other profiles, e.g., created
by ’guix package’.

>> From my understanding, set #:format-version to 3 should only be
>> considered when <hash> is a parent/ancestor of current commit in
>> ’--commit=<hash>’.
>
> Here #:format-version 3 is unconditional.  That avoids having to make
> assumptions about whether or not the target commit understands newer
> format versions.
>
> But you’re right: a refinement would be to use version 3 only when
> targeting an ancestor.  I don’t think it’s worth the trouble though.

Ok, yeah it makes sense.  The question could be revisited when the
manifest of the profile ~/.config/current would require a version
update.

Cheers,
simon