Alex Kost <alez...@gmail.com> 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’.