guix-devel
[Top][All Lists]
Advanced

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

Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "


From: George Clemmer
Subject: Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc..
Date: Mon, 01 Oct 2018 16:17:50 -0400
User-agent: mu4e 1.0; emacs 26.1

Ludovic Courtès <address@hidden> writes:

> Hello,
>
> YOANN P <address@hidden> skribis:
>
>> I was thinking than "~/.guix-profile/manifest" was a valid manifest file due 
>> to his name, but it seems not that is the case from the error i've got
>>
>> https://pastebin.com/Z7h2t5mL
>>
>> After some search , i've finally understand that the instantiated profile 
>> couldn't be used as source profile for "guix package -m" etc... due to the 
>> same words despite use case and is a bit confusing
>
> I agree it’s a bit confusing.  The manual does make it clear that -m
> expects source code that evaluates to a manifest object, though.
>
>> https://gnunet.org/bot/log/guix/2016-05-27#T1040380
>>
>> It will be really convenient to only have the instantiate profile to easily 
>> maintain it in a vcs system.
>>
>> Despite what ludo said in 2016 on IRC, i didn't see those options yet.
>> Did i missed them ?
>> If not implemented yet, any news about this feature ? :)
>
> No news I’m afraid :-) but I’ve opened an issue so we keep track of it:
>
>   https://issues.guix.info/issue/32844

Hi Ludo’,

Your bug doesn't capture some other manifest issues ...

"~/.guix-profile/manifest" and 'guix package --manifest=FILE' use the
same term/filename for markedly different things and the doc is silent
on the distinction. While "~/.guix-profile/manifest" may be internal to
Guix, users will inevitably trip across it and be confused (as YOANN did
here, and I did a year ago).

We might avoid confusion and make documentation easier by renaming one
of these. Consider ...

We are using "~/.guix-profile/manifest" in a way that is consistent with
a common use, e.g., shipping manifest, which specifies information not
in the associated order and at a level of detail that can only be
determined at shipment (e.g. serial number).

Our use of manifest in 'guix package --manifest=FILE' is rather less
intuitive. In fact this FILE is more like an order than a manifest,
IMO. As the doc says, [the manifest] 'FILE must return a “manifest”
object, which is roughly a list of packages'. If we were to rename this
a "package-list" or "package-spec", this would be more intuitive and
self-explanatory (at least to me, an English speaker), and make the doc
easier to write/understand.

YOANN hit an error when trying to do 'guix package -m
~/.guix-profile/manifest'. Why would one want to do this? Maybe to
(re)produce a configuration previously reached by a series of 'guix
package -i' operations?

In most situations, rather than a "~/.guix-profile/manifest" file, one
wants to use a 'guix package --manifest=FILE', since this is more
durable over time and easier to maintain (e.g. in SCC).

So, IMO, it would be useful to have something like ...

guix package --manifest-from-profile -p ~/.guix-profile > FILE

... which returns a "minimally specified" FILE that allows 'guix package
--manifest=FILE' to reproduce "~/.guix-profile".

- George



reply via email to

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