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

From: Ricardo Wurmus <[email-masked]>
Date: Thu, 07 Jan 2021 21:31:53 +0100

zimoun <[email-masked]> writes:

>> > 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).

This is a solved problem as far as I’m concerned.  (It still needs to be
documented in the manual and maybe in the cookbook.)

You need to set GUIX_EXTENSIONS_PATH to a location that contains a Guile
module “(guix extensions my-command)” that defines “my-command” with
“define-command” (so it needs to import (guix scripts)).  The category
should be “extension” (it’s a new category that has been added
recently).

As long as that’s the case Guix will be able to list it in “guix --help”
and execute it.

Here is the entry point of the Guix Workflow Language, which uses this
very mechanism:

    https://git.savannah.gnu.org/cgit/gwl.git/tree/guix/extensions/workflow.scm.in

-- 
Ricardo