From: Ian Eure <ian@retrospec.tv>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: 72686@debbugs.gnu.org, guix-devel <guix-devel@gnu.org>
Subject: Re: bug#72686: Impossible to remove all offload machines
Date: Sun, 01 Dec 2024 11:05:37 -0800 [thread overview]
Message-ID: <87ldwzmdfi.fsf@retrospec.tv> (raw)
In-Reply-To: <87setsmnj2.fsf@gmail.com> (Maxim Cournoyer's message of "Sun, 22 Sep 2024 11:26:41 +0900")
Hi Maxim,
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Hi Ian,
>
> Ian Eure <ian@retrospec.tv> writes:
>
> [...]
>
>> The only other option I can see would be to keep the existing
>> filenames for user configuration, and declaritively manage
>> different
>> files -- like declaritive-channels.scm. This comes with its
>> own set
>> of problems, like needing to update the Guix daemon to read and
>> combine multiple files; and the inability to know whether a
>> given
>> `channels.scm' is declaritively- or manually-managed means a
>> bumpy
>> upgrade path (ex. should this preexisting channels.scm file be
>> left
>> as-is, or renamed to the new name?)
>
> I'd think that be a great option to pursue, although it's more
> work more
> thoughts. Perhaps it could work along these lines
> (brainstorming)
>
> I like the idea to leave the original, potentially manually
> written file
> in place and complement it with a declarative counterpart. The
> same
> would also have benefited /etc/guix/acl, which suffers from the
> same
> ambiguity.
>
Apologies for the silence, life stuff has been eating most of my
free time, but I have a bit of bandwidth to spend on this problem
again.
I took a swing at this, it wasn’t as difficult as I expected.
While this approach gives a smooth upgrade path for those who’ve
configured channels in a stateful way switching to declarative
configuration, it’s possibly bumpy for those already using a
declarative config. If a machine with declarative channels is
reconfigured, the channels will be duplicated from
/etc/guix/channels.scm to /etc/guix/channels-declarative.scm.
Using `delete-duplicates' on the merged channels should avoid
major problems, but I think it still needs a loud entry in news
and manual action (deleting /etc/guix/channels.scm) to upgrade.
Given that both approaches will require manual action, I’m a bit
inclined to go with the simpler, and take over the existing file.
That said, I think the failure mode of the simpler approach
(stomping on channels a user may have configured) is undeniably
worse than potentially duplicating channels or continuing to pull
in old ones unexpectedly. Do either of you have a strong opinion
or more information which would help guide this decision?
The root issue at work behind all these problems is that
activation code only sees the desired target config, rather than
the current and target configs. Comparing the current and target
configs would allow the code to more precisely compute the needd
change to move from one state to the next. I think that could be
a good change to make, though it’s obviously going to be much more
involved, and IMO will require discussion outside the scope of
this specific bug.
I have a draft patch series I hope to send up soon, but need to
get Guix System up in a VM to test first. It does separate
declarative channels into their own config, but doesn’t do the
same for build machines. While I think many fewer users configure
build machines than channels, it’s probably a good idea to use the
same approach for both channels and machines.
— Ian
prev parent reply other threads:[~2024-12-01 19:06 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-17 16:40 Impossible to remove all offload machines Ian Eure
2024-09-14 14:55 ` bug#72686: " Maxim Cournoyer
2024-09-15 3:24 ` Ian Eure
2024-09-15 3:53 ` Ian Eure
2024-09-15 19:06 ` Tomas Volf
2024-09-19 0:35 ` Ian Eure
2024-09-22 2:26 ` Maxim Cournoyer
2024-12-01 19:05 ` Ian Eure [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ldwzmdfi.fsf@retrospec.tv \
--to=ian@retrospec.tv \
--cc=72686@debbugs.gnu.org \
--cc=guix-devel@gnu.org \
--cc=maxim.cournoyer@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.