Olivier Dion <[email protected]> writes:
> On Fri, 29 Apr 2022, Ricardo Wurmus <[email protected]> wrote: >>> Even if I were to import locally defined packages, their dependencies >>> would come from the Guix's main channel! >> >> What would you think about WITH-CHANNELS that would accept a list of >> channels and evaluate any package reference in its body within an >> inferior of those channels? >> >> E.g. >> >> (with-channels %my-channels >> (package >> (name "yay") >> … >> (inputs >> (list foo bar baz)) ;these are all looked up in %my-channels >> … >> (license gpl3+))) > > What about dependencies? Says I have the following graph: > > G <- Guix's channel > C <- My channel > > P@V <- My package at version V from C > D@U <- Dependency of P at version U from G > > The `guix time-machine` allows me to pin the commits of G and C and thus > pinning V and U. Would that work the with WITH-CHANNELS ? Exactly the same way. The first argument to WITH-CHANNELS would be (cons C G) and thus P and D would be picked from the set of C and G. C and G can be specified with exact commits or branches, just like the --channels option to “guix time-machine”. We already have all the tools for WITH-CHANNELS — that’s (guix inferior). We just don’t have a convenient syntax to do this without a lot of boilerplate. -- Ricardo
