Subject: Re: GCD005: Regular and efficient releases

From: Rutherther <[email-masked]>
Date: Mon, 12 May 2025 18:23:47 +0200

Hi Greg,

Greg Hogan <[email-masked]> writes:

> On Fri, May 9, 2025 at 5:55 PM Steve George <[email-masked]> wrote:
>>
>> I hope the initial user experience wouldn't be to "break on the user's first pull", since with annual releases we wouldn't have release artefacts that are 2.5 years out of date. And, we'd also degraft regularly which would be beneficial for all users.
>>
>> As you can tell I would _love_ us to be able to have a slower moving branch, but purposefully have kept the GCD more limited. For now focusing on the step forward of regular releases.
>
> I have not updated a 2.5+ year old Guix system, but what is the issue
> here? How is this any different from updating a week old system? If
> the archive contains broken packages then the user upgrade experience
> will fail just the same. And clearing the archive of broken packages
> also breaks user manifests!

There isn't an issue as long as you use substitutes. But if you decided
you won't, then there is an issue currently. Specifically there is a
misbehaving mirror crysys.hu that returns 200, but returns page not
found html page. That means packages like gnutls aren't building. For
people that are installing Guix from their system's package manager,
they will get hit by this unless they actively activate the substitutes.

This points to a more general problem that can be happening in the
future, it can be misbehaving mirrors or pages that aren't handled well
by Guix and lead to non-buildable software. As long as pages behave as
they should, everything should be fine, ie. SWH gets triggered on
missing repositories, subsequent mirror urls are used, etc. But
misbehaving pages are always going to cause issues.

Apart from that there has been a mistake made in generation of the 1.4.0
iso, the iso has used a local channel url, /home/ludo/..., so now if you
install from the iso, your system will have this path in the
channels.scm provenance file. Then if you do not pull at all, but
reconfigure right away, you will get an error that /home/ludo/... is not
found. That is because of the forward update check that is going to try
to check if your current commit is descendant of the previous one.
(I think that the check should have a way to abort early if no
commits have changed btw)
Mistakes like that will probably be happening with new releases
as well. Though this one should be impossible already - the url is going
to be replaced in the operating-system from install.scm.

The more releases the faster issues like this can get resolved, and not
confuse the users.

Regards
Rutherther