[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Workflow management with GNU Guix
From: |
Ludovic Courtès |
Subject: |
Re: Workflow management with GNU Guix |
Date: |
Thu, 12 May 2016 18:06:56 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Hello Guix!
Roel Janssen <address@hidden> skribis:
> So, I would like to propose a new Guix subcommand and an extension to
> the package management language to add workflow management features.
>
> Would this be a feature you are interested in adding to GNU Guix?
I don’t know if it should be in Guix itself (and it’s probably too early
to think about it), but there’s definitely interest in it!
Pjotr mentioned it before, and Ricardo started a thread on this topic on
help-guix in February¹, where we discussed something similar to what you
proposed. I agree with you that Guix should be a nice tool for the job.
¹ https://lists.gnu.org/archive/html/help-guix/2016-02/msg00019.html
> I'm currently working on a proof-of-concept implementation that has three
> record types/levels of abstraction:
> <workflow>: Describes which <process>es should be run, and concerns itself
> with
> the order of execution.
>
> <process>: Describes what packages are needed to run the programs involved,
> and its relationship to other processes. Processes take input
> and
> generate output much like the package construction process.
>
> <script>: Short and simple imperative instructions to perform a task. They
> are
> part of a <process>. Currently, my implementation generates a
> shell
> script that can be either Guile, Sh, Perl or Python.
In the previous discussion, I thought that a gexp would be enough to
write a derivation that implements a workflow. That is, basically you’d
write:
(define (my-workflow input)
(gexp->derivation "result" #~(process-the-thing #$input #$output)))
Maybe it’s all it takes to represent a workflow? Or maybe my idea of
what workflows look like is too naive.
> The subcommand I envision is:
> guix workflow
>
> With primarily:
> guix workflow --run=<name-of-workflow-definition>
>
> If you are interested in adding any form of workflow management to GNU Guix, I
> can elaborate on my proof-of-concept implementation, so we can work from
> there.
> (or throw everything out of the window and start from scratch ;-))
I’m interested in seeing what it’s like, and examples of it!
Thanks,
Ludo’.