[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to install GWL?
From: |
Ludovic Courtès |
Subject: |
Re: How to install GWL? |
Date: |
Sat, 01 Feb 2020 12:49:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi there!
Ricardo Wurmus <address@hidden> skribis:
>> The difference between "as a package" --which implies inferiors-- or
>> "as a channel" is: embed vs extend.
>>
>> I was convinced that "as a package" was more convenient. Now I am not sure.
>> :-)
>> Because we know what "embed" means. ;-)
>>
>> For example, Julien's home-manager [1] uses the "as a channel" approach.
>
> The home-manager *only* requires Guix. The GWL needs wisp,
> guile-commonmark, guile-gcrypt, guile-pfds (for sets),
> guile-syntax-highlight, graphviz (for visualizing workflows), etc. In
> the future it might also depend on the Guile AWS library, perhaps even
> some libraries that implement different schedulers, etc. I’ve also been
> thinking about adding a web interface to visualize the current state of
> processes spawned by the workflow, which should make debugging workflows
> much easier.
Oh, channels in their current form wouldn’t be a good fit because they
don’t allow you to ask for additional dependencies. Perhaps a problem
to solve, dunno.
> Channels don’t allow for any fancy installation or setup. The Guile
> modules provided by a channel are compiled just in time when running
> “guix pull”. It doesn’t seem like a good idea for the GWL to hook into
> the channels mechanism when it doesn’t provide what channels were
> designed to help implement: extensions to the package graph.
Yeah.
> I think inferiors also give GWL users a feature that would otherwise be
> missing: to run arbitrary workflows with arbitrary channel definitions
> via inferiors without having to first manually execute “guix pull” to
> switch to the particular channels that a workflow requires. Using
> inferiors gives a superior user experience, in my opinion.
Indeed, that makes sense to me.
Simon and I were discussing and I was saying that this inferior
vs. channel discussion reminds me of extend vs. embed in the context of
programming languages like Guile (where inferiors are a bit like
“embedding”).
But yeah, I didn’t have a good understanding of the constraints here, so
thanks for clarifying!
Ludo’.