zimoun <zimon.touto...@gmail.com> writes:
>> So if the file is at /tmp/foo/guix/extensions/bar.scm then >> $GUIX_EXTENSIONS_PATH should be /tmp/foo/guix/extensions. > > Well, I will propose to have the thing as you said before. Because > fixing (guix extensions bar) and the path $GUIX_EXTENSIONS_PATH/foo > seems reasonable but $GUIX_EXTENSIONS_PATH/foo/guix/extensions is too > redundant. It does seem so, but the idea was to reduce the number of files that Guix will have to parse before finding an extension. Extensions would be installed to the same prefix /share/guix/extensions, so Guix can set GUIX_EXTENSIONS_PATH to $profile/share/guix/extensions and not worry about having to parse all the Scheme files in $profile/share, which may be a lot — for example Guix’s own commands are defined in files under $profile/share, so they would end up as extensions… We can change this, but we’d need to agree on an as yet unused directory as the root for extensions. > Moreover, it could nice to have GUIX_EXTENSIONS_PATH look by default > in ~/.config/guix/extensions, i.e., by default > GUIX_EXTENSIONS_PATH=~/.config. The last part of this sentence is what I meant above: we need to avoid that, because that would cause ~/.config/guix/current/share/guile/site/3.0/guix/scripts/ to be included in the search for extensions. I have added a search path specification to the “guix” package itself, so that it will set GUIX_EXTENSIONS_PATH to $profile/share/guix/extensions automatically. The idea is to update the format of the “channels.scm” file to allow for the installation of extra packages into the “guix pull” profile (by default that’s ~/.config/guix/current). This way I could say that I want the freshly pulled Guix to also install the “gwl” package in the same profile, and that new Guix would automatically have the “gwl” extension’s “workflow” sub-command. -- Ricardo