guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Stratification of GNU Guix into Independent Channels


From: Liliana Marie Prikler
Subject: Re: Stratification of GNU Guix into Independent Channels
Date: Sat, 24 Dec 2022 12:01:19 +0100
User-agent: Evolution 3.46.0

Am Samstag, dem 24.12.2022 um 03:49 +0000 schrieb jgart:
> Hi Guixers,
> 
> I wanted to ask you what are your thoughts on this idea. This is a
> thought experiment at this stage.
> 
> Should GNU Guix be a small core of packages (and services?)?
No, it should be a functional operating system.

> What do you think would be the pros and cons of the stratified
> approach versus the monorepo approach that we currently have?
I think monorepo is a weird term to apply to Guix.  Yes, it is just a
single repository, but notably, it doesn't collect the sources of every
other package out there to put it into a single tree.  Instead, it
contains a recipe per package.  This makes it no different from Debian,
Arch, Gentoo, or any other package manager out there.

> GNU Guix proper would be a solid core of packages that is very easy
> to maintain. This would greatly reduce the maintenance burden since
> maintaining a world of rust, golang, or python packages is opt in by
> those who want to do that particular work.
No, it wouldn't.  Suppose this bootstrap Guix consisted only of
packages up to GCC.  Then any change to it would result in non-local
changes (and potential breakages) in every other channel in existence
and the local CI would never catch that.  As it currently stands, GCC
breaking some other package would be caught on core-updates.

> Users can opt out of certain channels. For example, there might be
> some users that want absolutely no rust or some other language or
> ecosystem of packages from being downloaded on their machine for
> whatever reason. Same goes for any other languages.
You can not opt out of Rust if you depend on librsvg.  In future, you
might not even be able to opt out of Rust when using the Linux kernel.
Yes, this is possibly the worst timeline to live in, but we need
solutions to actually deal with it, not burying our heads in sand.

> Would being subscribed to just the hypothetical small core channel in
> this proposal increase download/installation speeds given the
> availability of substitutes?
Not really, because for a functional system you would have to pull in
other channels.  With a stricter module layout we could possibly
modularize guix pull further, thus decreasing individual derivation
time, but that alone is a daunting task and not guaranteed to bring big
improvements.

What does work is convincing upstreams to pull in less dependencies and
drop the outdated ones, because that makes it so that eventually Guix
has to ship less packages.

Cheers



reply via email to

[Prev in Thread] Current Thread [Next in Thread]