guix-devel
[Top][All Lists]
Advanced

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

Re: Reorganizing guix package commands


From: Alex Kost
Subject: Re: Reorganizing guix package commands
Date: Tue, 19 Apr 2016 10:52:00 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Ludovic Courtès (2016-04-18 20:20 +0300) wrote:

> Alex Kost <address@hidden> skribis:
>
>> I've just sent a message to bug#22587¹, but I realized it is better to
>> discuss it here in a separate thread.
>>
>> So, I think there are inconsistencies in guix commands.  For example, we
>> have "guix system build" to build a system, but "guix build" to build a
>> package.  IMO "guix package build" would be a better choice.
>>
>> In general, I think it would be good to move package commands inside
>> "guix package", e.g, to make "guix package lint", "guix package size",
>> etc.
>
> Why not consider “package” to be the default word?  :-)

Interesting, but why do we need to have "guix package" at all?  Let's
just use "guix --install", etc.  (This is not what I suggest :-))

> I can see how adding “package” everywhere helps categorize things
> mentally, but as a user interface, I think it would be rather bad.

As a user, I think it would be rather good.  (This is just my user opinion)

> Also, it’s not that simple: “guix size” can take a store item instead of
> a package name, “guix graph” cannot do it yet but it would be useful if
> it could (“guix graph -t references $(readlink -f /run/current-system)”),
> etc.

Hm, OK, I'm not sure, but let's leave "graph" and "size" alone for now.

> I still think that having aliases like “guix install” as Andy proposed
> long ago would be useful, though I never started working on it.

I agree!  Except I think they should be inside "guix package":

  guix package install ...
  guix package remove ...

As for the transactional operations (I mean remove/install in one
command), I think we can do it in a separate "guix profile" command:

  guix profile --install ... --remove ...

> There are probably other improvements to do around “guix package” (maybe
> turning some of its options into separate sub-commands as was suggested
> before.)  All we need is a clear view of where we’re going and patches.  :-)

Here is the summary of the changes I think it would be good to have:

| Replace this:                     | With this:                        |
|-----------------------------------+-----------------------------------|
| guix build                        | guix package build                |
| guix edit                         | guix package definition¹          |
| guix import                       | guix package import               |
| guix lint                         | guix package lint                 |
| guix refresh                      | guix package refresh              |
| guix package --show               | guix package show                 |
| guix package --search             | guix package search               |
| guix package --list-available     | guix package list                 |
|-----------------------------------+-----------------------------------|
| guix package --list-generations   | guix profile --list-generations   |
| guix package --list-installed     | guix profile --list-installed     |
| guix package --delete-generations | guix profile --delete-generations |
| guix package --switch-generations | guix profile --switch-generations |
| guix package --roll-back          | guix profile --roll-back          |
| guix package --manifest           | guix profile --manifest           |

¹ "edit" name is confusing: <http://bugs.gnu.org/22587>

Maybe instead of --list-generations and others, these options should
transform into subcommands (list-generations) of "guix profile".

-- 
Alex



reply via email to

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