[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Wrap %default-guix-channel inside channel-with-substitutes-available
From: |
Leo Prikler |
Subject: |
Re: Wrap %default-guix-channel inside channel-with-substitutes-available by default? |
Date: |
Wed, 30 Jun 2021 10:25:29 +0200 |
User-agent: |
Evolution 3.34.2 |
Am Mittwoch, den 30.06.2021, 10:11 +0200 schrieb Mathieu Othacehe:
> Hello,
>
> > I think we do have the obligation to clearly document channels-
> > with-
> > substitutes-available and make it so that this particular piece of
> > documentation can easily be found by everyone who is potentially
> > affected by slow-downs. Perhaps we might even want to include an
> > option in the installer to set up /etc/guix/channels.scm to only
> > use
> > channels with available substitutes. But using it as a default
> > without
> > communicating this fact to the users would be a poor idea in my
> > opinion.
>
> I fear that a lot of users are not aware of this mechanism and do not
> really understand why "guix pull" sometimes starts building stuff.
>
> We could maybe proceed this way:
>
> 1. Enable the channel-with-substitutes-available snippet by default.
>
> 2. Add a command line option --without-available-substitutes.
>
> 3. Add a new info message when the fetched commit is not the latest
> commit, to minimize the risk you are mentioning above. Something
> like:
>
> Skipping N new commits that do not have any available substitutes,
> use the --without-available-substitutes option to update anyway.
I don't think such verbosity leads to a good result, compare the
infamous ". $GUIX_PROFILE/etc/profile" blurb. I think we should
instead have --with-available-substitutes(*), so that we have
--with-available-substitutes: Only pull stuff, that can be substituted
(default): Pull the latest, don't care about substitutes
--without-substitutes: Pull the latest, never substitute
I think having default in the middle here and no potential for
confusion between --without-available-substitutes and --without-
substitutes is preferable. WDYT?
Regards,
Leo
(*) Things get a little more complicated if you add other channels. Of
course Guix CI only hosts the main channel, but what if someone has
Guix Past along with a CI that builds Guix Past (or the same setup
without substitutes)? When should this logic pull Guix Past and which
commit?