Subject: [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests

From: Ludovic Courtès <[email-masked]>
Date: Tue, 15 Mar 2022 10:23:11 +0100

Hi zimoun,

zimoun <[email-masked]> skribis:

> On Mon, 14 Mar 2022 at 22:53, Ludovic Courtès <[email-masked]> wrote:
>
>>   $ guix shell a b c d --transform=whatever=else
>>   [env]$ guix package --export-manifest -p $GUIX_ENVIRONMENT
>>
>> I figured that instead of documenting this, we might as well provide
>> a command that does it in one go:
>>
>>   guix manifest a b c d --transform=whatever=else > manifest.scm
>
>>>From my opinion, a complete subcommand for only one use case does not
> seem the right thing.  Instead, IMHO, it would be better to have an
> extension for that.
>
> Because once we introduce a subcommand, it is hard to change (see
> 'guix environment') and since Guix provides this great extension
> mechanism, I think it is the path for this kind of niche use cases:
> start with an extension and depending on the "popularity" and interest
> then upstream.
>
> Well, if you think this feature is great to have in Guix proper,
> personally I would find more coherent:
>
>     guix package --create-manifest a b c --transform=whatever=else >
> manifest.scm

OTOH, sub-commands as just as cheap (and as expensive!) as command-line
options.  That is, one way or another, we’ll have to maintain the thing,
whether it’s called ‘--create-manifest’ or ‘manifest’.

To me, the argument in favor of the sub-command is that that it’s more
discoverable, clearer, and easier to use.  A user who has a ‘guix shell’
command line can replace ‘shell’ by ‘manifest’ and get their manifest.

Thinking about it, another option would be to add an ‘--export-manifest’
option to ‘guix shell’ instead.

Thoughts?

Ludo’.