May 26, 2024 at 10:00 PM, "Richard Sent" <rich...@freakingpenguin.com> wrote:
> > Hi Guix! > > > > > I think channels listed in channels.scm files should optionally support > > > > using whatever channel version is already in the user's profile, if > > > > present. This would significantly speed up entering development > > > > environments composed of Guix channels. > > > > Unfortunately, *I may be delayed every time I enter the development > > > > environment by several minutes while Guix computes a new derivation > > > > due to an update in %default-channels*. > > > > I wound up implementing a proof of concept for this idea here: > > https://www.freakingpenguin.com/blog/guix-tricks-self-referential-channelsscm-files.html > > --8<---------------cut here---------------start------------->8--- > > (define (soft-pin-channel input-channel) > > "Given @var{channel}, return a new version of channel that uses the > > current profile's commit of said channel. If the channel is not present, > > commit is #f." > > (define (desired-channel? channel) > > (equal? (channel-name input-channel) > > (channel-name channel))) > > (define (profile-commit input-channel) > > (call/ec > > (lambda (return) > > (map (lambda (x) > > (when (desired-channel? x) > > (return (channel-commit x)))) > > (current-channels)) > > #f))) > > (channel > > (inherit input-channel) > > (commit (profile-commit input-channel)))) > > --8<---------------cut here---------------end--------------->8--- > > If people think this is useful, I'm happy to flesh out the idea more and > > submit a proper patch. In my experience this does improve the > > development experience when setting up developer tools that rely on > > custom channels. At least when there's a new Guix commit, I don't have > > to wait several minutes for a new Guix channel collection to build, but > > without pinning it to a specific commit. > > At present I can think of soft-pinning a list of channels by name being > > useful. I can also see an option to only fetch dependencies of a > > channel, not the channel itself, being useful. I would definitely > > appreciate feedback or use cases! :) Sounds worthwhile. I would submit the patch as-is, so it is not lost. :) > > -- > > Take it easy, > > Richard Sent > > Making my computer weirder one commit at a time. >