Previous: Declaring package requirements, Up: Defining a Workflow [Contents][Index]
workflow Fields
Both make-workflow and workflow accept the same fields,
which we describe below.  Of all these fields only name and
processes are required.
nameThe readable name of the workflow as a string. This is used for display purposes. When the
workflowconstructor is used, thenamefield need not be provided explicitly.versionA version string to distinguish different releases of the workflow.
synopsisA short summary of what this workflow is about.
descriptionA description of what the workflow is supposed to accomplish.
processesThis field contains a list of processes that should be scheduled when the workflow is executed. A plain list of processes specifies processes that may run in parallel. A list of process lists is used to specify process dependencies. This is best done with the
graphmacro:The following workflow definition lets the process
combinerun aftergenerate-Aandgenerate-B, which will both run in parallel. The processcompresswill run aftercombine, and thus at the very end.workflow frobnicate processes graph combine -> generate-A generate-B compress -> combineThis can be expressed just as well with lists of process lists, but it looks a little dense. Here is the same thing in Scheme without the
graphmacro:(workflow frobnicate (processes (list (list combine generate-A generate-B) (compress combine))))If the processes all declare inputs and outputs, the GWL can connect the processes and ensure that only independent processes are run simultaneously. Use the
auto-connectprocedure on your processes:workflow do-stuff processes auto-connect . this . that . something-elsebeforeThis field holds a Scheme procedure that will be executed before the workflow processes are scheduled. This can be useful for printing introduction banners or logos.
workflow fancy-hello before lambda _ display "\ _ _ _ . | | | | | . | |__ ___| | | ___ . | '_ \\ / _ \\ | |/ _ \\ . | | | | __/ | | (_) | . |_| |_|\\___|_|_|\\___/ . " newline display "Now that I've got your attention, let's compute!" newline newline processes list helloafterThis field holds a Scheme procedure that will be executed after all workflow processes have been executed. This can be useful for printing further instructions or hints as to where the user may find important output files.
workflow fancy-bye after lambda _ newline display "The main report file is called `report2021_final_really_approved.html'." newline newline processes list generate-report
Previous: Declaring package requirements, Up: Defining a Workflow [Contents][Index]