summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-01Introduce new command definition syntax.Arun Isaac
* ccwl/ccwl.scm: Do not export input and output. (<input>): Delete source field. Add position field. (input): Accept position and prefix fields in constructor. Do not initialize non-existent source field. (<command>): Delete additional-inputs field. Add inputs field. Delete set-command-outputs and set-command-stdin setters. (command): Rewrite as macro that accepts new command definition syntax. (<cli-element>): Delete type. (command->cwl): Generate CWL from new <command> type. (command-input-keys): Simplify to support new <command> type.
2021-06-01Remove unused setters, appenders, etc.Arun Isaac
* ccwl/ccwl.scm: Do not export input-with-prefix. (<input>): Delete set-input-prefix. (<step>): Delete set-step-run, set-step-id, set-step-out. (input-with-prefix, field-appender, modify-step-run, append-step-in, append-step-out, append-command-outputs): Delete functions.
2021-06-01In pipe, pass through input keys to all expressions.Arun Isaac
Earlier, the input keys would only be passed to the first expression. The second expression would only receive the output keys from the first expression. Passing input keys through to all expressions is a common use case, since expressions often need to access global inputs. If the original behavior is desired, we can always introduce a new construct, say `pipe-strict'. * ccwl/ccwl.scm (workflow-steps): In pipe, pass through input keys to all expressions.
2021-06-01Filter out global workflow inputs from workflow outputs.Arun Isaac
* ccwl/ccwl.scm (key->output): New function. (workflow-steps): Filter out global workflow inputs from workflow-outputs.
2021-06-01Add filter-mapi.Arun Isaac
* ccwl/utils.scm (filter-mapi): New public function.
2021-06-01Add syntax-lambda**.Arun Isaac
* ccwl/utils.scm (syntax-lambda**): New public macro.
2021-06-01Avoid datum->syntax.Arun Isaac
* ccwl/utils.scm (lambda**): Avoid using datum->syntax whenever possible.
2021-06-01Add unsyntax-keywords.Arun Isaac
* ccwl/utils.scm (unsyntax-keywords): New function.
2021-05-25Git ignore auto-generated doc files.Arun Isaac
* .gitignore: Add doc/*.html, doc/*.info, doc/.dirstamp and doc/stamp-vti.
2021-05-25Add texinfo as a build dependency.Arun Isaac
* guix.scm: Import (gnu packages texinfo). Add texinfo to native-inputs.
2021-05-25Add table of contents to manual.Arun Isaac
* doc/ccwl.texi: Add table of contents.
2021-05-25Add title and copyright pages to manual.Arun Isaac
* doc/ccwl.texi: Add title and copyright pages.
2021-05-25Hide Top node introduction in printed manual.Arun Isaac
* doc/ccwl.texi (Top): Move introduction into ifnottex block.
2021-05-25Mention version in manual.Arun Isaac
* doc/ccwl.texi: Include version.texi. (Top): Mention version.
2021-05-24Mention documentation in the README.Arun Isaac
* README.org (Documentation): New section.
2021-05-24Rewrite the README introduction to ccwl.Arun Isaac
* README.org: Rewrite introduction.
2021-05-24Add HTML manual to website.Arun Isaac
* Makefile.am (website/manual/dev/en): New target. (website): Require website/manual/dev/en. (AM_MAKEINFOHTMLFLAGS): Add --css-ref=/style.css to include CSS.
2021-05-24Add CSS to website.Arun Isaac
* Makefile.am (website/style.css): New target. (website): Require website/style.css. * style.css: New file.
2021-05-24Build website from README.org.Arun Isaac
* Makefile.am (website, website/index.html, clean-local): New targets. * build-aux/build-home-page.el: New file.
2021-05-24Add Contributing section to README.Arun Isaac
* README.org (Contributing): New section.
2021-05-24Downcase ccwl.Arun Isaac
* README.org: Downcase ccwl.
2021-05-24Do not compile pre-inst-env.Arun Isaac
* pre-inst-env.in: Add --no-auto-compile flag to shebang.
2021-05-24Remove unnecessary -s flag from shebang.Arun Isaac
* pre-inst-env.in, scripts/ccwl.in: Remove unnecessary -s flag from shebang.
2021-05-24Replace suffix rule with pattern rule.Arun Isaac
Suffix rules are deprecated and should not be used. Pattern rules are clearer and more general. * Makefile.am: Replace suffix rule to build scheme files with pattern rule.
2021-05-24Do not bind command line argument 0 in pre-inst-env.Arun Isaac
* pre-inst-env.in: Do not bind command line argument 0 to a variable.
2021-05-24Set PATH in pre-inst-env.Arun Isaac
* pre-inst-env.in: Append scripts directory to PATH.
2021-05-24Add "Workflow with multiple steps" to tutorial.Arun Isaac
* doc/ccwl.texi (Workflow with multiple steps): New node. (Tutorial): Link to "Workflow with multiple steps" node from menu.
2021-05-24Install ccwl script.Arun Isaac
* Makefile.am (bin_SCRIPTS): Add scripts/ccwl.
2021-05-24Add "Capturing output files" to tutorial.Arun Isaac
* doc/ccwl.texi (Capturing output files): New section. (Tutorial): Link to "Capturing output files" node from menu.
2021-05-24Add "Capturing stdout" section to tutorial.Arun Isaac
* doc/ccwl.texi (Capturing the standard output stream of a command): New section. * doc/ccwl.texi (Tutorial): Link to "Capturing stdout" node from menu.
2021-05-24Add "First example" section to tutorial.Arun Isaac
* doc/ccwl.texi (First example): New section. (Tutorial): Link to "First example" node from menu.
2021-05-24Add tutorial.Arun Isaac
* doc/ccwl.texi (Tutorial): New chapter. (Top): Link to "Tutorial" node from menu.
2021-05-23Unify command variable reference.Arun Isaac
* ccwl/ccwl.scm (command-variable, command-syntax->object): Delete functions. (command-object): New function. (workflow-steps): Use command-object instead of command-variable and command-syntax->object.
2021-05-23Add manual.Arun Isaac
* doc/ccwl.texi: New file. * Makefile.am (bin_SCRIPTS): Add doc/ccwl.texi.
2021-05-17Support simpler syntax for inputs with no properties.Arun Isaac
* ccwl/ccwl.scm (workflow): When input has no properties, support only specifying the symbol.
2021-05-17Support implicit key pairing.Arun Isaac
* ccwl/ccwl.scm (command-syntax->object): When command accepts only a single input and there is only a single key available, support implicit key pairing.
2021-05-17Support commands with implicit step identifier.Arun Isaac
* ccwl/ccwl.scm (workflow-steps): When command does not specify step identifier, assume the step identifier is the same as the command symbol.
2021-05-17Abstract out command variable reflection.Arun Isaac
* ccwl/ccwl.scm (command-variable, command-syntax->object): New functions. (workflow-steps): Use command-variable and command-syntax->object.
2021-05-17Remove deprecated %stdin and %stdout variables.Arun Isaac
* ccwl/ccwl.scm (%stdin, %stdout): Delete variables.
2021-05-17Indent workflow macro correctly.Arun Isaac
* .dir-locals.el (scheme-mode): Set scheme-indent-function of workflow to 1.
2021-05-17Support general DAG workflows.Arun Isaac
* ccwl/ccwl.scm: Import (srfi srfi-71). (command-input-keys, workflow-steps): New function. (workflow): Support general Directed Acyclic Graph (DAG) workflows.
2021-05-15Implement <key> type and utilities.Arun Isaac
* ccwl/ccwl.scm (<key>): New type. (key, cwl-key-address): New functions.
2021-05-15Pass inputs explicitly to make-workflow.Arun Isaac
* ccwl/ccwl.scm (make-workflow): Accept inputs explicitly.
2021-05-15Use symbols as input identifiers instead of strings.Arun Isaac
* ccwl/ccwl.scm (input=?): Compare using eq? instead of string=?. (command->cwl, write-cwl): Convert input-id to string before appending.
2021-05-15Make stdin a unary key of command.Arun Isaac
* ccwl/ccwl.scm (command): Make stdin a unary key.
2021-05-15Do not convert YAML symbols from kebab case to camel case.Arun Isaac
Doing this conversion effectively forbids kebab case symbols in YAML. * ccwl/yaml.scm (kebab->camel): Delete function. (display-atom): Do not convert symbols from kebab case to camel case. * ccwl/ccwl.scm (make-workflow, output->cwl, command->cwl): Write camel case explicitly.
2021-05-15Add list functions for multi-valued functions.Arun Isaac
* ccwl/utils.scm (mapn, append-mapn, foldn): New public functions.
2021-05-14Rewrite pre-inst-env in scheme.Arun Isaac
Scheme code is more readable than arcane bash. * pre-inst-env.in: Rewrite in scheme.
2021-04-26Remove deprecated pipeline function.Arun Isaac
* ccwl/ccwl.scm (pipeline): Delete function.
2021-04-26Escape asterisk characters in scm->yaml.Arun Isaac
* ccwl/yaml.scm (display-atom): Escape asterisk characters. * tests/yaml.scm ("strings with asterisk characters should be escaped"): New test.