Hello Guix! Roel Janssen <r...@gnu.org> 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’.