Subject: Re: bug#22600: 'Globally-Visible Packages' not shown by 'M-x guix-installed-packages'

From: myglc2 <[email-masked]>
Date: Tue, 09 Feb 2016 21:30:28 -0500

Alex Kost <[email-masked]> writes:

> myglc2 (2016-02-09 05:29 +0300) wrote:
> [...]
>> My concern is that this experience might leave a new user thinking,
>> "Geez, I know back in the fog of the USB install I added packages. What
>> kind of package manager is this? It doesn't show me the packages that I
>> painfully typed in using zile at the console". IMO this is the kind of
>> doubt that can undermine confidence during the critical first few hours
>> of software test driving and lead a user to abandon the experment.
>
> I would say that a user should get acquainted with the basic concepts of
> Guix before using it.  I think per-user package management is one of such
> concepts, and it is described in the beginning of (info "(guix) Features")
> section of the manual.
>

Per-user features are very important for guix adopters. But as
described in my other post, global (aka system) features are equally
important for guixSD adopters.  It is fantastic that guix + guixSD
support both use cases.

OTOH, these use cases appear to be fighting against each other. This
makes the documentation hard to write and understand. It makes the
user interface hard to do. If we let the conflict get out of control
it will confuse the marketplace and undermine guix/SD.

So we need to embrace and understand this natural yin and yang in a
great solution that spans user, package, distribution, and system
managment. If we can do that I think guix/SD will be very successful.

>> But, wouldn't it be better to combine these functions so even a duummy
>> will see all the packages?
>
> As I suggested in the previous mail, we can add "M-x guix-system-packages".
> Maybe it would be good to add "M-x guix-user-packages", or maybe name them:
>
> - guix-installed-system-packages  (for /run/current-system/profile)
> - guix-installed-user-packages    (for ~/.guix-profile)
>
> And to leave "M-x guix-installed-packages" for an arbitrary profile
> specified by a user.  WDYT?

I like it. I tried to summarize what I think I understand in the table
below.  Could you take a look and fix it up?

| Recipe Source           | install                                                                    | Profile                     | UI access                            | Scope  | Generations                 |
|-------------------------+----------------------------------------------------------------------------+-----------------------------+--------------------------------------+--------+-----------------------------|
| guix pull               | sudo guix system reconfigure <config>                                      | /run/current-system/profile | * M-x guix-installed-system-packages | global | M-x guix-system-generations |
| guix pull               | guix -i <package>                                                          | ~/.guix-profile             | * M-x guix-installed-user-packages   | global | M-x guix-generations        |
|                         |                                                                            |                             |                                      |        |                             |
| git pull w/wo user mods | [env]$ sudo ./pre-inst-env guix system reconfigure ../configs/config.k.scm | /run/current-system/profile | * M-x guix-installed-system-packages | user   | M-x guix-system-generations |
| git pull w/wo user mods | ???                                                                        | ~/.guix-profile             | * M-x guix-installed-user-packages   | user   | M-x guix-generations        |
|                         |                                                                            |                             |                                      |        |                             |
| <user custom>           | ???                                                                        | <user specfied>             | M-x guix-installed-packages          | ouser  | ???                         |
|                         |                                                                            |                             |                                      |        |                             |

Notes:
 * - proposed
 ??? - don't know