Hi Andy,

There are some guidelines for naming packages, as discussed in the manual: https://guix.gnu.org/en/manual/devel/en/html_node/Package-Naming.html. Ultimately, of course, the final say rests with the commiters who do or do not accept a given patch in a given state. As for namespaces, Guix packages being defined in Guile and thus in Guile modules provides namespacing in most contexts - if not operating at the command line, one need only use the correct module and reference a given package object directly.

That said, last night I was just considering the potential for name conflicts. If a given `guix package -i <package>` command would resolve equally well to two different packages, for example, it seems the priority goes to whichever one comes first in some alphabetic comparisons - or perhaps it's by the order of channels in the channel list; I didn't investigate much more than to find out if Guix offers any manual intervention.

I mused aloud about the possibility of adding a switch to specify channels in such situations and was offered the following addition to the command: `-e '(@ (my channel packages) foo)'`. This allows one to specify Scheme objects precisely. In this case, that code resolves to the package `foo` in the module `(my channel packages)`. Of course, this is not necessarily obvious or approachable to a relatively new or casual user - I had to test to understand the incantation above, and I would not have considered it without advice.

All of that to say, you raise some good questions. I hope these thoughts prove useful to you in your endeavors.

Best,
Juli



Reply via email to