Hi,

On Fri, Jun 20, 2025 at 08:58:11PM -0400, Philip McGrath wrote:
> On Wed, Jun 11, 2025, at 4:58 PM, Ludovic Courtès wrote:
> >> I'm wondering if we should separate "Guix installed as a packge
> >> manager" into it's own package set. In the long run this would be a
> >> building lock that allow us to align with Philip's suggestion of
> >> following a more Nix-packages / Nix OS separation of releases. What do
> >> you think?
> >
> > The NixOS/Nixpkgs distinction doesn’t really exist anymore (it used to
> > be two separate repos but the two are necessarily tightly coupled), so
> > I’m not sure what the suggestion is.
> >
> 
> The distinction I was thinking about was between the `nix` daemon and 
> command-line tool, developed at https://github.com/NixOS/nix and last 
> released on May 22 as version 2.29.0, and the Nixpkgs/NixOS package 
> definitions, developed at https://github.com/NixOS/nixpkgs and last released 
> on May 23 as version 25.05. IIUC, `nix` itself has a release cadence 
> independent of Nixpkgs/NixOS: e.g. the previous `nix` 2.28.0 release was on 
> April 4, whereas the Nixpkgs/NixOS 24.11 release was back in November.
> 
> I think the https://github.com/NixOS/nix repository corresponds to the parts 
> of Nix or Guix needed to install on a foreign distribution, as reflected in 
> particular by the origin of Guix's nix@2.16.1 package.
(...)

AIUI some/many distributions will only package 'releases', so it would mean 
doing a release of the parts of Guix that are used in the binary installer. I 
don't know enough to know if this is achievable for Guix - Philip if you would 
like to work on a follow-up GCD proposing it I would be happy to partner with 
you on it.

For now, I've added the following in the section about possible future 
improvements:

-- >8 -- >8 --


There are various improvements that could be made to the release strategy over
time, such as:

1. Create separate releases of the Guix source necessary for installing Guix
   on a foreign distribution. This would mean that downstream Linux
   distributions that package Guix could have new release more often.
1. Adding an additional slower release cadence. This could be either a security
   and critical fixes branch strategy, such as implemented by Nix. Or it could
   be a slightly slower moving branch, such as implemented by SUSE SlowRoll.


-- >8 -- >8 --


> On Mon, Jun 9, 2025, at 9:34 AM, Ludovic Courtès wrote:
> >> ## Release artifacts
> >> 
> >> Using the primary architecture tier and the package sets would involve 
> >> creating
> >> the following release artifacts:
> >> 
> >> - GNU Guix System ISO image
> >> - GNU Guix System QCOW2 image
> >> - ["the Guix System installation user interface on the ISO"]
> >
> > This omits two important things:
> >
> >   • The binary tarball, used to install on top of another distro, for
> >     all “supported architectures” (Primary and Alternative).
> >
> >   • The source tarball, as produced by ‘make dist’ (target audience is
> >     primarily downstream packagers, such as Debian).
> >
> > Reducing toil will be a matter of defining “supported architectures” in
> > a reasonable way.
> 
> For the source and binary tarballs used to install on foreign distros and for 
> downstream packaging, the case for regular releases seems clear. We expect 
> that people may choose to upgrade the Guix daemon relatively rarely, 
> especially if they (like me!) are getting it from downstream  distro 
> packaging. Ideally, the scope of this would be small enough that backporting 
> important bug fixes and security updates would be feasible. (IIRC, the fix 
> for CVE-2024-52867 was not backported onto Guix 1.4.0: the recommendation in 
> the blog post was to use `guix pull` or wait for your distro packager to do 
> the cherry-pick the patches.) These are what I think correspond to the 
> https://github.com/NixOS/nix repository.
> 
> For the Guix System UI+ISO+QCOW2, I am less clear on the benefits of 
> designated releases over rolling-release snapshots like those from 
> <https://guix.gnu.org/en/download/latest/>. (It is very possible that this is 
> because I don't know much about how the installer works. I only tried it once 
> or so, as an experiment: other times I have installed Guix System by first 
> installing Guix on a foreign distro and then using `guix system reconfigure`.)
> 
> Nixpkgs/NixOS has both a rolling-release channel, nixos-unstable, and "stable 
> channels" like nixos-25.5, which "get conservative bug fixes and package 
> upgrades" and "are generally maintained until the next stable branch is 
> created". Guix does not currently have "stable channels", and I haven't heard 
> anyone proposing to change that at this juncture, so the only way to get bug 
> fixes and security updates is to use `guix pull` regularly.
> 
> AIUI, this makes a release like Guix System 1.4.0 notably different than a 
> release like NixOS 25.5. If you use a NixOS 25.5 installer, you not only do 
> get version 25.5 of the installer itself, but also also default configuration 
> to use the nixos-25.5 channel, so you will continue to use the same major 
> versions of packages that you initially install, with only "conservative bug 
> fixes and package upgrades". With a Guix System 1.4.0 installer, on the other 
> hand, as soon as you do `guix pull && sudo guix system reconfigure 
> /run/current-system/configuration.scm && sudo herd restart guix-daemon`—which 
> you ought to do regularly—your package versions update the same as if you had 
> used a snapshot installer.
> 
(...)

I personally would love Guix to have a "stable" channel (as noted in the 
improvements section). But, after discussion with the GCD's sponsors I removed 
it because it was felt that this was too big a step - consequently the GCD was 
descoped to focus on "annual releases" and then other improvements can come 
later.

Steve / Futurile





Reply via email to