Subject: Re: bug#22629: Channels not needed for a stable branch (was: Channels!)

From: Mark H Weaver <[email-masked]>
Date: Wed, 29 Aug 2018 13:14:03 -0400

Hi,

Alex Sassmannshausen <[email-masked]> writes:
> My primary interest in channels at the moment comes from believing that
> having a "stable" channel would be incredibly useful to increase
> adoption rate of Guix.  And for me.

Konrad Hinsen <[email-masked]> writes:
> Look at the wider Linux world: there are people who want to live on
> the bleeding edge and run Arch Linux, and there are others who value
> stability and run CentOS. Today's Guix is more on the bleeding edge
> side. My understanding of your commment is that you would like to make
> sure it stays there. But that also means severely limiting Guix'
> potential user base.

Both of you seem to have reached the conclusion that third-party
channels are a prerequisite for having a 'stable' branch.  I disagree.

I agree with both of you that a 'stable' branch of Guix would be
tremendously useful.  I've often wanted it myself, and I still do.

My point is that I want to keep our APIs internal and unfrozen for the
same reason that Linux, the kernel project, does.  Linux refuses to
support out-of-tree drivers and modules, and thereby retains its freedom
to change their internal APIs.  Often they change how things work
internally and this entails doing massive find-replace on every driver
in the tree.  This has been a crucially important factor in their
long-term success.

Does this stop the Linux developers from offering stable branches, or
third-parties from maintaining older stable versions of Linux in their
own Git repositories?  Clearly not.  It's been done all along.

We should persue a similar model.  The crucial thing is to always keep
the package modules together with the rest of Guix.  If you want to
clone Guix to a third-party repository, I have no problem with that.
Just keep it all together, and maintain the entire tree as an undivided
whole.

"guix pull" already supports the ability to fetch from an arbitrary
branch, or even from an arbitrary upstream source, so we already have
what we need to start a 'stable' branch, or for a third-party to do that
if they wanted to.

     Regards,
       Mark