unofficial mirror of gwl-devel@gnu.org
 help / color / mirror / Atom feed
From: zimoun <zimon.toutoune@gmail.com>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: "Kyle Meyer" <kyle@kyleam.com>,
	gwl-devel@gnu.org, "Ludovic Courtès" <ludo@gnu.org>
Subject: Re: How to install GWL?
Date: Wed, 5 Feb 2020 15:34:16 +0100	[thread overview]
Message-ID: <CAJ3okZ0cJgmSZ8QjJjYoX8=VsGLieFQZHbm4FhgpdhwrqstD4A@mail.gmail.com> (raw)
In-Reply-To: <877e16u081.fsf@elephly.net>

Hi Ricardo,

On Sat, 1 Feb 2020 at 10:27, Ricardo Wurmus <rekado@elephly.net> wrote:

> When a user installs the GWL, the Guile module “(guix scripts workflow)”
> is installed.  If the GUILE_LOAD_PATH is not set to include the
> directory holding this module then the GWL won’t be available.  Let’s
> assume that GUILE_LOAD_PATH is in fact set to include the modules of the
> GWL and its Guile dependencies (including an old version of Guix).
>
> (guix scripts workflow) then provides the “guix workflow” sub-command to
> whatever “guix” command is invoked by the user.  What about all of the
> modules that the GWL uses?  They also need to be on the load p

I am thinking loudly.
ath.  The
> “guix” command arranges for its own modules to appear on the load path
> first.  So when using the GWL with any version of Guix *that* variant’s
> modules are going to be used.

Yes, it is what I have tried to spot out previously in the thread. :-)
Re-reading, I horribly worded it so it was not-understandable. My bad! Sorry.


> This also includes Guile JSON, guile-sqlite, Guile Gcrypt,
> Bytestructures, etc in versions that match the variant of Guix — and
> that might conflict with versions used in the GWL.

Oh!
This is annoying... and hard to fix because it is the classical
dependency hell we know.


> The first takeaway is: we don’t actually need to use an inferior Guix
> when all we want is for the GWL to use the current version of Guix.

Not all Guix, only the current version of the packages, right?


> (Adding support for inferiors is still a good idea, of course, because
> it makes workflows more flexible and reproducible.)
>
> The second takeaway is: when upgrading Guix with “guix pull” it is
> possible that the GWL (installed by “guix install gwl”) breaks due to
> API changes in Guix or even due to changes to the dependencies of Guix —
> such as the Guile JSON upgrade recently.
>
> This makes me think that extending Guix without some API *and*
> dependency guarantees is a bit more fragile than I’d like it to be.  On
> the other hand, the API has been rather stable in the past and there has
> only been one incompatible upgrade (that of Guile JSON) that might have
> affected the GWL.

Yes, but there is no guarantee, I mean it should work "almost" all the
time. I am not sure to agree that an "almost" remains.


> I still think that the channels feature is the wrong deployment
> mechanism for the GWL; I also still think that the GWL is too big to be
> a part of Guix proper.  Perhaps the GWL needs to add more runtime checks
> to ensure that the Guix modules it uses are available at runtime; any
> references to individual packages (such as the Guile variant to use to
> run scripts, or the Bash package used for shell wrappers) should also be
> replaced with more future-proof lookups by package name.

I thought you proposed that GWL should run in an inferior (say 1)
fixing the correct Guix version that it needs to work and another
inferior (say 2) should populate the store with any other Guix
version. And because the store is stable, then GWL using inferior 1
does the expected job. Is it not what you have in mind when speaking
about inferiors? (plural at inferior ;-))

Do I miss something?


> It would be desirable to have Guix releases more often, so that the
> difference between the version of Guix that was used to build it and the
> effective version at runtime (due to “guix pull”) cannot grow too large.

We had a session at Guix Days about improving the release process.
Well, I do not remind that someone took some notes. Sadly.
Let drop an email on guix-devel to collect the feedback (Chris
(Baines), Ludo, Clément and others were there so we should be able to
reconstitute ;-))


All the best,
simon

  reply	other threads:[~2020-02-05 14:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-22 21:55 How to install GWL? Ricardo Wurmus
2020-01-23  1:15 ` Kyle Meyer
2020-01-23 10:06   ` Ricardo Wurmus
2020-02-01  9:26     ` Ricardo Wurmus
2020-02-05 14:34       ` zimoun [this message]
2020-02-05 19:36         ` Ricardo Wurmus
2020-02-10  0:22           ` zimoun
2020-01-23  1:17 ` zimoun
2020-01-23 11:14 ` Roel Janssen
2020-01-23 11:24   ` zimoun
2020-01-23 13:02     ` Ricardo Wurmus
2020-01-23 14:18       ` zimoun
2020-01-23 13:12   ` Ricardo Wurmus
2020-01-31  9:16 ` zimoun
2020-01-31 11:07   ` Ricardo Wurmus
2020-02-01 11:49     ` Ludovic Courtès
2020-02-05 13:50       ` zimoun
2020-02-05 13:46     ` zimoun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.guixwl.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJ3okZ0cJgmSZ8QjJjYoX8=VsGLieFQZHbm4FhgpdhwrqstD4A@mail.gmail.com' \
    --to=zimon.toutoune@gmail.com \
    --cc=gwl-devel@gnu.org \
    --cc=kyle@kyleam.com \
    --cc=ludo@gnu.org \
    --cc=rekado@elephly.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).