Subject: Re: [bug#37443] [PATCH] scripts: pull: Add options for generation management

From: zimoun <[email-masked]>
Date: Thu, 19 Sep 2019 11:41:44 +0200

Hi,

On Thu, 19 Sep 2019 at 10:22, Ludovic Courtès <[email-masked]> wrote:

> >> Now, it’s true that having two different profiles appears to be hard
> >> to grasp for newcomers, as Ricardo was saying just now on IRC.
> >
> > I suspect that the whole idea of profiles (as distinct from the user
> > account) is not obvious. If I ever extend my tutorial to include
> > profiles, I would probably introduce them as persistent environments.
>
> Yeah, that’s what they are, so maybe it’s simpler to present profiles as
> persistent environments.

Coming from Conda package manager, it took me some time to understand;
because the Guix terminology was not what I was expecting from the
Conda terminology (in conda "guix environment" does not exist, and
"guix profile" is called environment).

Profile as persistent environment clarifies, IMHO.

Is it possible to list all my own profiles?

> > And since I am in criticizing mood, the whole Guix management API
> > suffers from bad naming. Consider "guix pull -l". What does it pull?  Or

I agree that "guix pull" should be split into:
 - "guix pull" which actually pulls and builds derivations
 - "guix log" which lists, switches or deletes the pull generation

For example "guix log --news" seems better than "guix pull --news".

> > "guix package –-roll-back", which doesn't roll back a package but a
> > profile.

I am not sure to understand this point. What do you mean?

To me, "guix package" manipulates transactions (states).
i.e., "guix package –-roll-back" roll backs a transaction of a profile.

>From section 4.1 Features

  The command provides the obvious install, remove, and upgrade
operations.  Each invocation is actually a _transaction_: either the
specified operation succeeds, or nothing happens.  Thus, if the ‘guix
package’ process is terminated during the transaction, or if a power
outage occurs during the transaction, then the user’s profile remains in
its previous state, and remains usable.

Therefore, from my opinion, the UI seems good enough here.

All the best,
simon