Subject: [bug#45632] [PATCH] guix package: Warn if uses has 'guix' package in profile.

From: zimoun <[email-masked]>
Date: Thu, 7 Jan 2021 18:46:29 +0100

Hi,

On Thu, 7 Jan 2021 at 18:27, Jakub Kądziołka <[email-masked]> wrote:

> As the actual warning text explains, including the guix package in a
> profile loaded by default breaks the 'guix pull' update mechanism, as
> the guix package from the profile will take priority.

Hum? I simply have ~/.config/guix/current/bin first in my PATH.  Well,
I have the package 'guix' in my profile since long time because of
'emacs-guix' and never hit an issue.

> This is inspired by some tech support on IRC where this turned out to be
> a root cause of a problem.

Could you indicate the day?

> Moreover, if I'm not missing anything, running 'guix package -u' with
> such a setup would *downgrade* the guix package each time.

I do not know, I never upgrade this way.  Because I only use
manifest.scm files.  Even, from my personal taste  '-u' and 'guix
upgrade' are Guix abomination and should not exist; another story. ;-)

Again if ~/.config/guix/current/bin first in the PATH, then it should
not be an issue, I guess.

> > For example, I have the package 'guix' in some of my profiles and I
> > would be annoyed to be warned. And I have it for good reasons. :-)
>
> Okay, I can see now that it is not wise to skimp on configurability for
> this. Though, I would like to hear more about your usecase - how do you
> keep your guix updated, for example?

Basically, "guix pull" and "guix package -m".  But I am tracking this
file "guix describe -f channels > channels.scm" and I also do "guix
time-machine -C channels.scm -- package -m manifest.scm".
Otherwise, when I want to give a try for a package, simply "guix
environment --ad-hoc"; time to time with "time-machine" too.

> > Once the story about extension is good enough,
>
> As in adding your own commands under the 'guix $CMD' namespace, or
> something more sophisticated? For the former, git seems to have a quite
> good mechanism - we could borrow that.

>From my understanding, Git use shell tricks and cannot be borrowed.
The idea is to have "guix <foo>"; for details, see the recent patch
about extensions by Ricardo and discussion on #guix-hpc (because GWL
is an extension).

All the best,
simon