aboutsummaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)Author
2024-03-22ccwl: Implement js-expression.Arun Isaac
js-expression corresponds to ExpressionTool in the CWL specification. * ccwl/ccwl.scm (<js-expression>): New type. (js-expression): New macro. (function-inputs, function-outputs, function-object): Support <js-expression> objects. (function-input-keys): Mention <js-expression> objects in docstring. * ccwl/cwl.scm (function->cwl, workflow->cwl-scm): Support <js-expression> objects. (command->cwl-scm): Move staging requirements handling to ... (staging-requirements): ... this new function. (js-expression->cwl, js-expression->cwl-scm): New functions. * ccwl/graphviz.scm (function->dot): Support <js-expression> objects. (command->graph): Abstract to ... (single-node-workflow->graph): ... this new function. (js-expression->dot, js-expression->graph): New functions. * scripts/ccwl (main): Support <js-expression> objects. * doc/ccwl.skb (Cookbook){Javascript expressions via ExpressionTool}: New section. * doc/js-expression-iota.scm: New file.
2023-12-01ccwl: Implement identity construct.Arun Isaac
* ccwl/ccwl.scm (collect-steps): Implement identity construct. * doc/ccwl.skb (Cookbook)[The identity construct]: New section. * doc/identity-construct.scm: New file.
2023-11-23ccwl: Implement item separators for array inputs.Arun Isaac
* ccwl/ccwl.scm (<input>)[separator]: New field. * ccwl/ccwl.scm (run-arg-position, run-args): Support array input specifiers. (run-arg-separator): New function. (command): Set separator on input objects. * ccwl/cwl.scm (input->cwl-scm): Serialize itemSeparator. * tests/ccwl.scm ("commands with non-string #:separator parameters must raise a &ccwl-violation condition"): New test. * doc/ccwl.skb (Cookbook)[Array input item separators]: New section. * doc/array-input-item-separators.scm: New file.
2023-11-21doc: Update source reference to rename.Arun Isaac
* doc/ccwl.skb (Tutorial)[Let's write a spell check workflow]: Update source reference to rename.
2023-11-18ccwl: Restrict #:binding parameter to YAML serializable trees.Arun Isaac
* ccwl/ccwl.scm (ensure-yaml-serializable): Accept parameter name for &formatted-message condition. (input): Explicitly pass parameter name #:other. Restrict #:binding parameter to YAML serializable trees. * doc/capture-output-file-with-parameter-reference.scm (extract-specific-file), doc/capture-output-file.scm (extract), doc/decompress-compile-run.scm (compile): Pass an YAML serializable tree, not an expression, as the #:binding parameter.
2023-11-17doc: Add chapter and section identifiers.Arun Isaac
Identifiers are important so the generated HTML documentation can have permanent URIs to all chapters and sections. We are not too concerned with adding identifiers to subsections since we don't list them in the table of contents. * doc/ccwl.skb: Add chapter and section identifiers to all chapters and sections.
2023-11-16ccwl: Support nested arrays.Arun Isaac
* ccwl/ccwl.scm (construct-type-syntax): Construct types recursively to support nested arrays. (key->output): Recursively convert stdout types to File types. * ccwl/cwl.scm (type->cwl): New function. (input->cwl-scm, output->cwl-scm): Use type->cwl. * tests/ccwl.scm (make-array-type): New function. (construct-type-syntax-wrapper): New syntax. ("construct-type-syntax on primitive types", "construct-type-syntax on array types", "construct-type-syntax on nested array types"): New tests. * tests/cwl.scm, doc/array-types.scm, doc/nested-array-types.scm: New files. * doc/ccwl.skb (Cookbook)[Array types]: New section.
2023-11-14doc: Add scatter-gather snippet.Arun Isaac
I forgot to add this file in my previous commit. * doc/scatter-gather.scm: New file.
2023-11-14ccwl: Implement scatter.Arun Isaac
* ccwl/ccwl.scm (<step>): Wrap constructor make-step. [scattered-inputs, scatter-method]: New fields. (collect-scatter-step): New function. (collect-steps): Implement scatter. (key->output): If step scatters, convert output to an array type. (workflow): Add syntax to initialize scattered-inputs and scatter-method fields of <step> object. * ccwl/cwl.scm (workflow->cwl-scm): Add ScatterFeatureRequirement if workflow contains scattering steps. Serialize scattered-inputs and scatter-method. * doc/ccwl.skb (Cookbook)[Scatter/gather]: New section.
2023-10-17doc: Add staging-input-files.scm snippet source file.Arun Isaac
This file was required by the previous commit, but I forgot to commit it! * doc/staging-input-files.scm: New file.
2023-10-17ccwl: Support staging input files.Arun Isaac
* ccwl/ccwl.scm (<input>)[stage?]: New field. * ccwl/ccwl.scm (input): Add #:stage argument. * ccwl/cwl.scm (command->cwl-scm): Serialize requirements for staged inputs. * doc/ccwl.skb (Cookbook)[Stage input files]: New section. * tests/ccwl.scm ("inputs with an invalid #:stage? parameter must raise a &ccwl-violation condition"): New test.
2023-10-15ccwl: Make #:stderr and #:stdout first class parameters.Arun Isaac
#:stderr and #:stdout, especially #:stdout, are commonly required. They ought to be first class parameters and not tucked away into #:other. * ccwl/ccwl.scm (<command>)[stderr, stdout]: New fields. * ccwl/ccwl.scm (command): Accept #:stderr and #:stdout as first class parameters. * ccwl/cwl.scm (command->cwl-scm): Serialize stderr and stdout fields. * doc/capture-stdout.scm (print), doc/decompress-compile-run.scm (run), doc/checksum.scm (md5sum, sha1sum, sha256sum), doc/spell-check.scm (find-misspellings): Capture stdout in file. * doc/checksum.scm, doc/decompress-compile-run.scm: * doc/ccwl.skb (Tutorial)[Capturing the standard output stream of a command]: Document #:stdout first class parameter. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Capture stdout in explicitly named files. * tests/ccwl.scm ("commands with non-string #:stderr parameters must raise a &ccwl-violation condition", "commands with non-string #:stdout parameters must raise a &ccwl-violation condition"): New tests.
2022-04-09doc: Add table of contents.Arun Isaac
* doc/ccwl.skb: Add table of contents.
2021-11-05doc: Search source-path in scheme-source-form.Arun Isaac
* doc/skribilo.scm (scheme-source-form): Search source-path.
2021-11-05doc: Add spell check workflow to tutorial.Arun Isaac
* doc/ccwl.skb (Tutorial)[Let's write a spell check workflow]: New section. * Makefile.am (doc/spell-check.out): New target. (EXTRA_DIST): Add doc/spell-check-text.txt and doc/dictionary. * doc/dictionary, doc/spell-check-text.txt, doc/spell-check-workflow-1.scm, doc/spell-check-workflow-2.scm, doc/spell-check.scm: New files.
2021-11-05doc: Support extracting specific forms from a scheme file.Arun Isaac
* doc/skribilo.scm (scheme-source-form): New public function.
2021-11-05doc: Document reuse of external CWL workflows.Arun Isaac
* doc/ccwl.skb (Cookbook): New chapter. * doc/external-cwl-workflow.scm, doc/echo.cwl: New files. * .gitignore: Add !doc/echo.cwl.
2021-10-18doc: Say that inputs, not workflow inputs, come into pipe and tee.Arun Isaac
Workflow inputs are now global. It is misleading to say that they come into the first expression, namely pipe and tee, in these examples. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Say that inputs, not workflow inputs, come into pipe and tee.
2021-08-17ccwl: Define output objects using a macro instead of a function.Arun Isaac
This allows us to do sophisticated syntax checking at an early stage, very close to the user interface. That way error messages from ccwl will make a lot more sense. * ccwl/ccwl.scm (output): Re-implement as macro. (command): Use the new macro interface. * doc/capture-output-file-with-parameter-reference.scm, doc/capture-output-file.scm, doc/capture-stdout.scm, doc/checksum.scm, doc/decompress-compile-run.scm: Use new quoting syntax for output types.
2021-08-16Makefile: Generate sample output when building documentation.Arun Isaac
* Makefile.am (CLEANFILES): Add doc/*.out. (CLEAN_DIRECTORIES): Add doc/cwl-output. (GENERATE_CWL_OUTPUT): New variable. (doc/capture-output-file.out, doc/capture-output-file-with-parameter-reference.out, doc/capture-stdout.out, doc/checksum.out, doc/decompress-compile-run.out, doc/hello-world.out, doc/pass-stdin.out, doc/hello.tar.out): New targets. * doc/capture-output-file-with-parameter-reference.out, doc/capture-output-file.out, doc/capture-stdout.out, doc/checksum.out, doc/decompress-compile-run.out, doc/hello-world.out, doc/hello.tar.out, doc/pass-stdin.out: Delete files. * build-aux/generate-cwl-output.sh.in, doc/hello.c.gz, doc/hello.tar, doc/hello.txt: New files. * configure.ac: Configure build-aux/generate-cwl-output.sh. * doc/ccwl.skb (Tutorial)[Passing input into the standard input stream of a command]: Replace file "foo" with "hello.txt". * .gitignore: Add build-aux/generate-cwl-output.sh, doc/*.out and doc/cwl-output.
2021-08-16ccwl: Define input objects using a macro instead of a function.Arun Isaac
This allows us to do sophisticated syntax checking at an early stage, very close to the user interface. That way error messages from ccwl will make a lot more sense. * ccwl/ccwl.scm (input): Re-implement as macro. (<input>): Add new functional setters set-input-position and set-input-prefix. (input-spec-id, run-arg-position, run-arg-prefix): New functions. (command, workflow): Use the new macro interface. * doc/capture-output-file-with-parameter-reference.scm, doc/capture-output-file.scm, doc/capture-stdout.scm, doc/checksum.scm, doc/decompress-compile-run.scm, doc/hello-world.scm, doc/pass-stdin.scm: Use new quoting syntax for input types.
2021-07-05doc: Inline code snippets.Arun Isaac
* doc/ccwl.skb (Tutorial)[Important concepts]: Inline code snippets.
2021-07-05doc: Add python named arguments example.Arun Isaac
* doc/ccwl.skb (Tutorial)[Important concepts]: Add python named arguments example.
2021-07-04doc: Use PNG images instead of SVG.Arun Isaac
PNG images are supported by both the info and html engines. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Use PNG images instead of SVG. * Makefile.am (CLEANFILES): Replace doc/*.svg with doc/*.png. (%.svg): Delete rule. (%.png): New rule. * .gitignore: Replace doc/*.svg with doc/*.png.
2021-07-04doc: Search for source-ref referenced files in source-path.Arun Isaac
* doc/skribilo.scm: Import (skribilo parameters). (source-ref): Search for files in source-path.
2021-07-04doc: Remove redundant file open.Arun Isaac
* doc/skribilo.scm (source-ref): Remove redundant file open.
2021-07-04Makefile: Build skribilo documentation in-place.Arun Isaac
* Makefile.am (SKRIBILO_BUILD_DIR): Delete variable. (CLEANFILES): Add doc/*.cwl, doc/*.dot, doc/*.svg, doc/ccwl.info, doc/skribilo.go. ($(SKRIBILO_BUILD_DIR)/%.cwl): Rename to %.cwl. (info-local, install-info-local): Depend on doc/ccwl.info instead of $(SKRIBILO_BUILD_DIR)/ccwl.info. (html-local, install-html-local, website/manual/dev/en): Depend on doc/ccwl.html instead of $(SKRIBILO_BUILD_DIR)/ccwl.html. ($(SKRIBILO_BUILD_DIR)/ccwl.info): Rename to doc/ccwl.info. ($(SKRIBILO_BUILD_DIR)/ccwl.html): Rename to doc/ccwl.html. (clean-local): Do not delete doc/skribilo.go and $(SKRIBILO_BUILD_DIR). * .gitignore: Add doc/*.cwl, doc/*.html, doc/*.info, doc/*.svg. Remove doc/skribilo. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Reference images in the doc directory instead of in the doc/skribilo directory.
2021-07-03doc: Use emph instead of quotes for emphasis.Arun Isaac
* doc/ccwl.skb (Tutorial)[First example, Capturing the standard output stream of a command]: Use emph instead of double quotes for emphasis.
2021-07-03doc: Move skribilo configuration into doc directory.Arun Isaac
* ccwl/skribilo.scm: Move to ... * doc/skribilo.scm: ... here. * doc/ccwl.skb: Import (doc skribilo) instead of (ccwl skribilo). * Makefile.am ($(SKRIBILO_BUILD_DIR)/ccwl.info, $(SKRIBILO_BUILD_DIR)/ccwl.html): Depend on doc/skribilo.go instead of ccwl/skribilo.go. * Makefile.am (clean-local): Delete doc/skribilo.go instead of ccwl/skribilo.go.
2021-07-03doc: Squeeze double space.Arun Isaac
* doc/ccwl.skb (Tutorial)[Capturing output files]: Squeeze double space.
2021-07-02doc: Add copyright headers.Arun Isaac
* doc/ccwl.skb: Add copyright headers.
2021-06-29doc: Document passing input into stdin.Arun Isaac
* doc/ccwl.skb (Tutorial)[Passing input into the standard input stream of a command]: New section. * doc/pass-stdin.scm, doc/pass-stdin.out: New files.
2021-06-28doc: Add workflow graphs.Arun Isaac
* Makefile.am (DOC_IMAGES): Add checksum.svg and decompres-compile-run.svg. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Add workflow graphs checksum.svg and decompres-compile-run.svg.
2021-06-22doc: Specify command inputs in a separate argument.Arun Isaac
* doc/capture-output-file-with-parameter-reference.scm, doc/capture-output-file.scm, doc/capture-stdout.scm, doc/checksum.scm, doc/decompress-compile-run.scm, doc/hello-world.scm: Specify command inputs in a separate argument. * doc/ccwl.skb (Tutorial)[First example]: Update description of command definition accordingly.
2021-06-22doc: Fix comma position.Arun Isaac
Lispy mode normalizes comma positions incorrectly for Skribilo mode. This needs to be fixed upstream or elsewhere. * doc/ccwl.skb (Tutorial)[Important concepts, Capturing the standard output stream of a command, Capturing output files, Workflow with multiple steps]: Fix comma position.
2021-06-21doc: Fill paragraph.Arun Isaac
* doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Fill paragraph.
2021-06-19doc: Link to source for pipe and tee.Arun Isaac
* doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Link to source for pipe and tee.
2021-06-15doc: Move documentation from texinfo to skribilo.Arun Isaac
* doc/ccwl.texi: Delete file. * ccwl/skribilo.scm, doc/ccwl.skb, doc/capture-output-file-with-parameter-reference.out, doc/capture-output-file-with-parameter-reference.scm, doc/capture-output-file.out, doc/capture-output-file.scm, doc/capture-stdout.out, doc/capture-stdout.scm, doc/checksum.out, doc/checksum.scm, doc/decompress-compile-run.out, doc/decompress-compile-run.scm, doc/hello-world.out, doc/hello-world.scm, doc/hello.tar.out: New files. * configure.ac: Check for skribilo. * Makefile.am: Unregister doc/ccwl.texi. Add documentation build rules. * guix.scm (ccwl)[native-inputs]: Replace texinfo with skribilo. * .gitignore: Add doc/skribilo. Remove doc/version.texi, doc/*.html, doc/*.info.
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-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-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-23Add manual.Arun Isaac
* doc/ccwl.texi: New file. * Makefile.am (bin_SCRIPTS): Add doc/ccwl.texi.