On Fri, 2024-01-26 at 22:32 +0100, Marek Paśnikowski wrote: > > I have experimentally, in three reproduction cycles, found out the following > <br> > "Laws of Guix Channel":
Glad to hear that you have figured it out! Sorry about not emailling you earlier. That "import a local directory with secrets" trick seems like a nice one to have in the bag! There's an extra law of Guix channels: all files within the file tree whose name ends with .scm must be runnable in the build environment (i.e. no network, no access to e.g. your home directory, etc.). This means that `guix repl -L $FILE_TREE_ROOT $FILE_TREE_ROOT/any/file.scm` must run and terminate without throwing any unhandled exceptions. (passing this test doesn't guarantee that it will work, however.) I'm not sure if having .scm files that are not modules within the file tree would themselves cause a problem, but doing so is definitely unsupported territory. One more thing: the root of the "file tree" need not be the root of the Git repo; it can be a subdirectory inside the repo. See https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html . In fact, this might be a more appropriate solution for your monorepo - see https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/ for an example.