GNU bug report logs - #46803
User manual does not explain Profiles (nor GUIX_PROFILE)

Previous Next

Package: guix;

Reported by: Luis Felipe <luis.felipe.la <at> protonmail.com>

Date: Fri, 26 Feb 2021 21:25:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46803 in the body.
You can then email your comments to 46803 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Fri, 26 Feb 2021 21:25:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Luis Felipe <luis.felipe.la <at> protonmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 26 Feb 2021 21:25:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Luis Felipe <luis.felipe.la <at> protonmail.com>
To: "bug-guix <at> gnu.org" <bug-guix <at> gnu.org>
Subject: User manual does not explain Profiles (nor GUIX_PROFILE)
Date: Fri, 26 Feb 2021 21:24:41 +0000
The Guix reference manual does not seem to explain what profiles are.


## Steps to reproduce

Assuming you are browsing the Guix reference manual in Info:

1. Type i (to search for an index topic).
2. Type the word profile and hit Enter.
3. Type , repeatedly to explore all the parts of the manual related to profiles.


## Expected result

At some point, I get to a section defining what is a profile exactly, a profile of what, what can I get from using one or many of them, what is the GUIX_PROFILE variable, does it accept a single path to a profile or more, and some use cases and examples.


## Unexpected result

I see profiles are mentioned in places where they can be used, but the text assumes I know what a profile is.

Similarly, the GUIX_PROFILE variable doesn't seem to be defined. It seems missing from the concept and programming indices.


## Additional information

The "Guix Profiles in Practice" recipe in the cookbook defines profiles to some extent. Maybe some of this information can be used in the manual?


---
Luis Felipe López Acevedo
https://luis-felipe.gitlab.io/





Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Fri, 26 Feb 2021 23:30:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: Luis Felipe <luis.felipe.la <at> protonmail.com>
Cc: 46803 <at> debbugs.gnu.org, bug-guix <at> gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Sat, 27 Feb 2021 00:30:18 +0100
[Message part 1 (text/plain, inline)]
Luis Felipe,

I think that would be very helpful.  I'm trying to think of a 
concise, correct, but actually useful definition of profiles for 
someone not already familiar with them or Guix.

Out of curiosity: how do you intuitively understand profiles, as 
someone who's used Guix for a while?

Luis Felipe via Bug reports for GNU Guix 写道:
> [...] what is the GUIX_PROFILE variable, does it accept a single
> path to a profile or more, and some use cases and 
> examples. [...]

I don't think we should document GUIX_PROFILE.  It's not part of 
the definition of Guix profiles.  It should not matter to users 
nor should they rely on previously observed behaviour.  AIUI there 
are no supported ‘use cases’, beyond copy-pasting Guix error 
messages...

> Similarly, the GUIX_PROFILE variable doesn't seem to be 
> defined. It seems missing from the concept and programming 
> indices.

...so this part isn't unexpected.

Kind regards,

T G-R
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Fri, 26 Feb 2021 23:30:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Sat, 27 Feb 2021 18:13:02 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Luis Felipe <luis.felipe.la <at> protonmail.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: "46803 <at> debbugs.gnu.org" <46803 <at> debbugs.gnu.org>,
 "bug-guix <at> gnu.org" <bug-guix <at> gnu.org>
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Sat, 27 Feb 2021 18:11:47 +0000
On Friday, February 26, 2021 11:30 PM, Tobias Geerinckx-Rice <me <at> tobias.gr> wrote:

> Luis Felipe,
>
> I think that would be very helpful. I'm trying to think of a concise, correct, but actually useful definition of profiles for someone not already familiar with them or Guix.
>
> Out of curiosity: how do you intuitively understand profiles, as someone who's used Guix for a while?

I think I didn't intuitively understand profiles. I think I actually started using them last year (apart from the user profile) after reading the Guix Profiles in Practice recipe, which made things clearer to me (but I don't think I grok the concept).

So, right now, I see a profile like a collection of packages that you can activate/deactivate in your environment by setting the GUIX_PROFILE environment variable and sourcing its profile file.


> Luis Felipe via Bug reports for GNU Guix 写道:
>
> > [...] what is the GUIX_PROFILE variable, does it accept a single
> > path to a profile or more, and some use cases and > examples. [...]
>
> I don't think we should document GUIX_PROFILE. It's not part of the definition of Guix profiles. It should not matter to users nor should they rely on previously observed behaviour. AIUI there are no supported ‘use cases’, beyond copy-pasting Guix error messages...

In the Guix Profiles in Practice recipe, for example, you are instructed to set GUIX_PROFILE and then use it when sourcing the profile. So I thought it deserved an entry in the index, since it is mentioned so often when working with profiles.

I think I was expecting something like:

GUIX_PROFILE
  This is an environment variable that you can set to
  [...]. Its value is an absolute path to a Guix profile.
  See Profiles for more information.

Now I'm confused.. :)





Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Sat, 27 Feb 2021 18:13:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Mon, 01 Mar 2021 10:00:02 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Tobias Geerinckx-Rice via Bug reports for GNU Guix <bug-guix <at> gnu.org>
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 46803 <at> debbugs.gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Mon, 01 Mar 2021 10:59:35 +0100
Hi,

Tobias Geerinckx-Rice via Bug reports for GNU Guix <bug-guix <at> gnu.org>
skribis:

> I think that would be very helpful.  I'm trying to think of a concise,
> correct, but actually useful definition of profiles for someone not
> already familiar with them or Guix.
>
> Out of curiosity: how do you intuitively understand profiles, as
> someone who's used Guix for a while?

I’m not Luis but I usually say that a profile is the location of a set
of installed packages.

> Luis Felipe via Bug reports for GNU Guix 写道:
>> [...] what is the GUIX_PROFILE variable, does it accept a single
>> path to a profile or more, and some use cases and examples. [...]
>
> I don't think we should document GUIX_PROFILE.  It's not part of the
> definition of Guix profiles.  It should not matter to users nor should
> they rely on previously observed behaviour.  AIUI there are no
> supported ‘use cases’, beyond copy-pasting Guix error messages...

Agreed.  ‘GUIX_PROFILE’ has no significance as an environment variable;
it’s referred to by the generated ‘etc/profile’, but it’s usually a
shell variable, not an environment variable.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Mon, 01 Mar 2021 10:00:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Mon, 01 Mar 2021 10:35:02 GMT) Full text and rfc822 format available.

Message #26 received at 46803 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, Luis Felipe
 <luis.felipe.la <at> protonmail.com>
Cc: 46803 <at> debbugs.gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Mon, 01 Mar 2021 11:28:23 +0100
Hi Tobias,

On Sat, 27 Feb 2021 at 00:30, Tobias Geerinckx-Rice via Bug reports for GNU Guix <bug-guix <at> gnu.org> wrote:

> Out of curiosity: how do you intuitively understand profiles, as 
> someone who's used Guix for a while?

Effectively, profiles is not explicitly defined but implicitly, for
instance:

<https://guix.gnu.org/manual/devel/en/guix.html#Features>

Otherwise, the most explicit definition is in the Cookbook:

        Guix provides a very useful feature that may be quite foreign to
        newcomers: profiles. They are a way to group package
        installations together and all users on the same system are free
        to use as many profiles as they want.

<https://guix.gnu.org/cookbook/en/html_node/Guix-Profiles-in-Practice.html>


BTW, I remember that coming from Conda (and Python), I was confused by
what was Profile and Environment in Guix, since ’environment’ (in Conda)
corresponds to Profile (in Guix).  Anyway, for words inspiration,
Conda’s doc:

        A conda environment is a directory that contains a specific collection
        of conda packages that you have installed. For example, you may have one
        environment with NumPy 1.7 and its dependencies, and another environment
        with NumPy 1.6 for legacy testing. If you change one environment, your
        other environments are not affected. You can easily activate or
        deactivate environments, which is how you switch between them. You can
        also share your environment with someone by giving them a copy of your
        environment.yaml file. For more information, see Managing environments.

<https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html>

And from this old time, I remember that examples really helps, for
instance.

<https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-environments>.

Therefore, the section «Getting Started» could be a bit extended with a
paragraph about Profiles and one or two examples.  WDYT?

<https://guix.gnu.org/manual/devel/en/guix.html#Getting-Started>


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Sun, 14 Mar 2021 10:57:01 GMT) Full text and rfc822 format available.

Message #29 received at 46803 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 46803 <at> debbugs.gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Sun, 14 Mar 2021 11:56:47 +0100
[Message part 1 (text/plain, inline)]
Hello,

zimoun <zimon.toutoune <at> gmail.com> skribis:

> Effectively, profiles is not explicitly defined but implicitly, for
> instance:
>
> <https://guix.gnu.org/manual/devel/en/guix.html#Features>
>
> Otherwise, the most explicit definition is in the Cookbook:
>
>         Guix provides a very useful feature that may be quite foreign to
>         newcomers: profiles. They are a way to group package
>         installations together and all users on the same system are free
>         to use as many profiles as they want.
>
> <https://guix.gnu.org/cookbook/en/html_node/Guix-Profiles-in-Practice.html>

[...]

> <https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html>
>
> And from this old time, I remember that examples really helps, for
> instance.
>
> <https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-environments>.
>
> Therefore, the section «Getting Started» could be a bit extended with a
> paragraph about Profiles and one or two examples.  WDYT?
>
> <https://guix.gnu.org/manual/devel/en/guix.html#Getting-Started>

Thanks for the pointers!  How about these changes to “Getting Started”
and “Invoking guix package”?

Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/doc/guix.texi b/doc/guix.texi
index 4cf241c56a..00bd087628 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2751,7 +2751,10 @@ you can go ahead and install it (run this command as a regular user,
 guix install emacs
 @end example
 
-You've installed your first package, congrats!  In the process, you've
+You've installed your first package, congrats!  The package is now
+visible in your default @dfn{profile}, @file{$HOME/.guix-profile}---a
+profile is a directory containing installed packages.
+In the process, you've
 probably noticed that Guix downloaded pre-built binaries; or, if you
 explicitly chose to @emph{not} use pre-built binaries, then probably
 Guix is still building software (@pxref{Substitutes}, for more info).
@@ -3061,7 +3064,10 @@ retaining precise @dfn{provenance tracking} of the software.
 @cindex package removal
 The @command{guix package} command is the tool that allows users to
 install, upgrade, and remove packages, as well as rolling back to
-previous configurations.  It operates only on the user's own profile,
+previous configurations.  These operations work on a user
+@dfn{profile}---a directory of installed packages.  Each user has a
+default profile in @file{$HOME/.guix-profile}.
+The command operates only on the user's own profile,
 and works with normal user privileges (@pxref{Features}).  Its syntax
 is:
 

Information forwarded to bug-guix <at> gnu.org:
bug#46803; Package guix. (Mon, 15 Mar 2021 09:44:01 GMT) Full text and rfc822 format available.

Message #32 received at 46803 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 46803 <at> debbugs.gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Mon, 15 Mar 2021 10:43:04 +0100
Hi Ludo,

On Sun, 14 Mar 2021 at 11:56, Ludovic Courtès <ludo <at> gnu.org> wrote:

> diff --git a/doc/guix.texi b/doc/guix.texi
> index 4cf241c56a..00bd087628 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -2751,7 +2751,10 @@ you can go ahead and install it (run this command as a regular user,
>  guix install emacs
>  @end example
>  
> -You've installed your first package, congrats!  In the process, you've
> +You've installed your first package, congrats!  The package is now
> +visible in your default @dfn{profile}, @file{$HOME/.guix-profile}---a
> +profile is a directory containing installed packages.
> +In the process, you've

I would add a link to the index term ’profile’ in “Invoking guix package”:

--8<---------------cut here---------------start------------->8---
@cindex profile
For each user, a symlink to the user's default profile is automatically
created in @file{$HOME/.guix-profile}.  This symlink always points to the
…
--8<---------------cut here---------------end--------------->8---


>  probably noticed that Guix downloaded pre-built binaries; or, if you
>  explicitly chose to @emph{not} use pre-built binaries, then probably
>  Guix is still building software (@pxref{Substitutes}, for more info).
> @@ -3061,7 +3064,10 @@ retaining precise @dfn{provenance tracking} of the software.
>  @cindex package removal
>  The @command{guix package} command is the tool that allows users to
>  install, upgrade, and remove packages, as well as rolling back to
> -previous configurations.  It operates only on the user's own profile,
> +previous configurations.  These operations work on a user
> +@dfn{profile}---a directory of installed packages.  Each user has a
> +default profile in @file{$HOME/.guix-profile}.
> +The command operates only on the user's own profile,
>  and works with normal user privileges (@pxref{Features}).  Its syntax
>  is:

I would add an index term and/or anchor and points to the option:

--8<---------------cut here---------------start------------->8---
@item --profile=@var{profile}
@itemx -p @var{profile}
Use @var{profile} instead of the user's default profile.

@var{profile} must be the name of a file that will be created upon
completion.  Concretely, @var{profile} will be a mere symbolic link
(``symlink'') pointing to the actual profile where packages are
installed:
…
--8<---------------cut here---------------end--------------->8---


Well, LGTM. :-)

Cheers,
simon




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 17 Mar 2021 13:55:01 GMT) Full text and rfc822 format available.

Notification sent to Luis Felipe <luis.felipe.la <at> protonmail.com>:
bug acknowledged by developer. (Wed, 17 Mar 2021 13:55:01 GMT) Full text and rfc822 format available.

Message #37 received at 46803-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 46803-done <at> debbugs.gnu.org
Subject: Re: bug#46803: User manual does not explain Profiles (nor
 GUIX_PROFILE)
Date: Wed, 17 Mar 2021 14:54:46 +0100
Hi zimoun,

Pushed something like the initial patch + index entries as
0571aa7abf262f617add727ac03e3bf63d41ae6d.  Thank you!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 15 Apr 2021 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 11 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.