[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GWL] (random) next steps?

From: zimoun
Subject: [GWL] (random) next steps?
Date: Fri, 14 Dec 2018 20:16:14 +0100

Dear Guixers,
... or at least some of them :-)

Here, I would like to collect some discussions or ideas about the Guix
Workflow Language (GWL) and the next steps of this awesome tool!

For those who do not know.
About workflow language, Wikipedia says:

About GWL, basically the idea is to apply Guix functional principles
to data processing. More details here:
Roel Janssen is the original author of the GWL and now the project is
part of GNU.

Well, I narrow the Ludo's notes from the Paris' meeting and add
commentaries as it was suggested. :-)

** HPC, “workflows”, and all that

  - overview & status
  - supporting “the cloud”
    + service that produces Docker/Singularity images
    + todo: produce layered Docker images like Nix folks
  - workflows
    + snakemake doesn’t handle software deployment
      + or does so through Docker
    + GWL = workflow + deployment
      + add support for Docker
      + add “recency” checks
      + data storage: IRODS?
  - Docker arguments
    + security: handling patient data with untrusted “:latest” images
    + Guix allows for “bisect”

Even if I am not a big fan of WISP because I remember difficulties to
catch "parenthesis closing" issue last time I tried, now I am fan of
what Ricardo showed!
Let push out the wisp-way of GWL... or not. :-)

What are the opinions ?

(pa (ren (the (sis))))



With wisp, the workflow description seems close to CWL, which is an argument ;-)
Last time, I check, CWL files seems flat yaml-like files and they lack
programmable extension; as Snakemake provides with Python for example.
And GWL-wisp will have both: easy syntax and programmable stuff,
because it is still lisp under the hood.

One of the lacking feature of GWL is kind-of content addressable store
(CAS) for data. Another workflow language named FunFlow (baked as
Haskell-DSL) implements such kind of ideas. To quote explanations by
Ricardo: "we could copy for the GWL (thus avoiding the need for
recency checks).  The GWL lacks a data provenance story and a CAS
could fit the bill."

The project OpenMole about parametric explorations seems implementing
an IPFS way to deal with the data. Not sure what does it mean. :-)

Talking about data, Zenodo is always around. ;-)

Some GWL scripts are already there.
Could we centralize them to one repo?
Even if they are not clean. I mean something in this flavor:

I recently have discovered the ELisp package `s.el` via the blog post:
or other said:

Does it appear to you a right path to write a "formater" in this
flavour instead of the `string-append` ?
I mean, e.g.,
  `(system ,(string-command "gzip  ${data-inputs}  -c >  ${outputs}"))
instead of e.g.,
  `(system ,(string-append "gzip " data-inputs " -c > " outputs))

It seems more on the flavour of  Snakemake.

The graph of dependencies between the processes/units/rules is written
by hand. What should be the best strategy to capture it ? By files "à
la" Snakemake ? Other ?

Does it appear to you a good idea to provide a command `guix workflow pack` ?
to produce an archive with the binaries or the commit hashes of the
channels, etc.

Last, the webpage [1] points to gwl-devel mailing list which seems broken.
Does the gwl-devel need to be activated and the GWL discussion will
append there or everything stay here to not scattered too much.


What do you think?
What is do-able? Science-fiction dream?

Thank you.

Have a nice week-end,


Then, just pointers/threads (that I am aware of) to remind what the
list already discussed.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]