[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inconsistencies in 'guix system' and 'guix package'
From: |
Ludovic Courtès |
Subject: |
Re: Inconsistencies in 'guix system' and 'guix package' |
Date: |
Tue, 27 Oct 2015 17:06:05 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Alex Kost <address@hidden> skribis:
> 1. Should 'guix system' actions share the same options?
>
> I think it is confusing that recently added 'guix system' actions
> (dmd-graph, extension-graph and list-generations) can take the same
> command-line options as the other system actions (--dry-run, --no-grub,
> etc.), because specifying these options doesn't take any effect.
>
> Another thing: "guix system <any-action> --help" displays the same help
> message for any action. With 'list-generations' it is even more
> confusing, as (unlike the other actions) it takes PATTERN, not FILE as
> the positional argument.
>
> What about splitting 'guix system' into submodules (as it is done for
> 'guix import') with putting general bits into (guix scripts system)?
I like the idea of submodules à la ‘guix import’! Would you like to
give it a try? The thing is, all the actions except ‘list-generations’
have a lot in common.
I am indeed unsatisfied with the current situation, but did not have a
better idea.
> 2. What about adding subcommands for 'guix package'?
>
> As we have 'guix system list-generations', would it be more consistent
> to have 'guix package list-generations' instead of the current 'guix
> package --list-generations'?
Or the other way around? :-)
> More generally, I think there is a similar issue with 'guix package', as
> with 'guix system': using some options together doesn't make sense
> (e.g., using --keep-failed, --show and --dry-run). For example, the
> following command:
>
> guix package --show=magit --list-generations=1
>
> displays generation 1, while the following:
>
> guix package --list-generations=1 --show=magit
>
> describes 'magit' package.
>
> Analogously, would it be appropriate to replace some 'guix package'
> options (--show, --list-generations --list-installed, --list-available)
> with subcommands ('guix package show', ...)?
But then some operations would have no subcommands: install, remove,
rollback, etc. So the syntax would be:
guix package SUBCOMMAND OPTIONS
or:
guix package OPTIONS
depending on the situation. That’s not great either.
Maybe (thinking out loud) we could separate this in:
guix package -> for installation, removal, upgrade, rollback
guix query -> for list-whatever, show
and then we need to find a place for --delete-generations.
Thoughts?
Seems like a can of worms, definitely post-0.9.0.
Ludo’.