Subject: [bug#45919] [PATCH 0/8] Exporting a manifest and channels from a profile

From: Pierre Neidhardt <[email-masked]>
Date: Mon, 01 Feb 2021 16:32:25 +0100

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Pierre Neidhardt <[email-masked]> skribis:
>
>> Ludovic Courtès <[email-masked]> writes:
>
> [...]
>
>>>   • The generated files might use APIs that, in the meantime, got
>>>     deprecated or changed somehow.  This is in contrast with
>>>     ‘--export-profile’, which interprets ‘manifest’ (a versioned file
>>>     format) and produces code that can use the API du jour.
>>
>> /run/current-system/configuration.scm suffers from the same problem.
>
> Not really because it’s precisely the file that you gave to build the
> system.  So you know you can run:
>
>   cd /run/current-system
>   guix time-machine -C channels.scm -- system reconfigure configuration.scm
>
> and it’ll work (modulo the documented caveats).

Ha, actually no, it won't always work! :)
Configuration.scm is only the file passed to `guix system reconfigure`,
but is this file inherits from other user Guile modules, then the
configuration.scm won't be sufficient to regenerate the system.

You could argue that it's a user problem, but still, there is an
"impurity" here! :p

> But again, that’s not really the goal here.  The goal is to help users
> willing to migrate from the “imperative” mode to the declarative mode.

Sure, but my thinking is that we could hit two birds we one stone here.
If we only think one half of the problem, we might end up with too many
commands or an interface that's not flexible enough.

> Once you’re using a manifest, probably you’ll want to put that under
> version control, but that’s already the case.

The channels.scm files are missing though.

My two cents! :)

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/