unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Alex Kost <alezost@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: Inconsistencies in 'guix system' and 'guix package'
Date: Tue, 27 Oct 2015 17:06:05 +0100	[thread overview]
Message-ID: <87pp00s3de.fsf@gnu.org> (raw)
In-Reply-To: <87y4eoqtdx.fsf@gmail.com> (Alex Kost's message of "Tue, 27 Oct 2015 17:27:06 +0300")

Alex Kost <alezost@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’.

  reply	other threads:[~2015-10-27 16:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-27 14:27 Inconsistencies in 'guix system' and 'guix package' Alex Kost
2015-10-27 16:06 ` Ludovic Courtès [this message]
2015-10-28 21:36   ` Alex Kost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pp00s3de.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).