aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2021-11-05doc: Add spell check workflow to tutorial.•••* 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. Arun Isaac
2021-11-05doc: Support extracting specific forms from a scheme file.•••* doc/skribilo.scm (scheme-source-form): New public function. Arun Isaac
2021-11-05build-aux: Hide doc/cwl-output in the manual output snippets.•••* build-aux/generate-cwl-output.sh.in: In the sed invocation, replace doc/cwl-output too. Arun Isaac
2021-11-05website: Do not specify line-height on h1, h2 and h3.•••* website/style.css (h1, h2, h3): Delete line-height CSS property. Arun Isaac
2021-11-05Makefile: Copy images without recursion.•••* Makefile.am (doc/ccwl.html): Copy images without recursion. Arun Isaac
2021-11-05Makefile: Delete target if recipe fails.•••Without this, when recipes involving output redirection fail, their targets are not deleted. * Makefile.am (.DELETE_ON_ERROR): New target. Arun Isaac
2021-11-05Makefile: Create doc directory before populating it.•••* Makefile.am (doc/.dirstamp): New target. ($(DOC_IMAGES:.png=.dot), $(DOC_OUT)): Depend on doc/.dirstamp. (CLEAN_DIRECTORIES): Add doc/.dirstamp. Arun Isaac
2021-11-05Makefile: Do not clean files based on extension.•••* Makefile.am (CLEANFILES): Replace doc/*.cwl, doc/*.dot, doc/*.out and doc/*.png with DOC_SCM, DOC_IMAGES and DOC_OUT variables. Arun Isaac
2021-11-05Makefile: Distinguish DOC_OTHER from DOC_OUT.•••DOC_OTHER includes dependencies that are neither scm files nor out files, but are primary sources required for the build. * Makefile.am (EXTRA_DIST): Add DOC_OTHER. (doc/ccwl.info, doc/ccwl.html): Depend on DOC_OTHER. * build-aux/find-dependencies.scm: Output DOC_OTHER. (find-dependencies): Classify source forms as type 'out or type 'other based on extension. Arun Isaac
2021-11-05doc: Document reuse of external CWL workflows.•••* doc/ccwl.skb (Cookbook): New chapter. * doc/external-cwl-workflow.scm, doc/echo.cwl: New files. * .gitignore: Add !doc/echo.cwl. Arun Isaac
2021-11-04Makefile: Distribute doc/hello.c.gz. and doc/hello.txt.•••These files are source files required for the build. They were missed out in an earlier commit. * Makefile.am (EXTRA_DIST): Add doc/hello.c.gz and doc/hello.txt. Arun Isaac
2021-11-04Makefile: Pass auxiliary dependencies from automatic variables.•••This is required to support VPATH builds. * Makefile.am (doc/capture-output-file.out, doc/capture-output-file-with-parameter-reference.out, doc/checksum.out, doc/decompress-compile-run.out, doc/pass-stdin.out): Pass auxiliary dependencies from automatic variables. Arun Isaac
2021-11-04build-aux: Use paths relative to top-level in generate-cwl-output.sh.•••This removes the assumption that the source tree and the build tree are the same, and is required to support VPATH builds. * build-aux/generate-cwl-output.sh.in: Accept and write to paths relative to the top-level directory. Do not change directory. * Makefile.am (doc/capture-output-file.out, doc/capture-output-file-with-parameter-reference.out, doc/checksum.out, doc/decompress-compile-run.out, doc/pass-stdin.out): Pass relative paths in input arguments. Arun Isaac
2021-11-02configure: Check for (yaml) guile module.•••* configure.ac: Check for (yaml) guile module. Arun Isaac
2021-11-02Makefile: Distribute doc/hello.tar.•••doc/hello.tar is used to build doc/hello.tar.out. * Makefile.am (EXTRA_DIST): Add doc/hello.tar. Arun Isaac
2021-11-02Makefile: Do not distribute *.out files.•••The *.out files are generated by running ccwl workflows. They need not be distributed. * build-aux/find-dependencies.scm (find-dependencies): Return *.out files and *.scm files as different kinds of dependencies. Output *.out and *.scm files separately as DOC_OUT and DOC_SCM instead of together as DOC_OTHER. * Makefile.am (doc/ccwl.info, doc/ccwl.html): Depend on DOC_SCM and DOC_OUT instead of DOC_OTHER. (EXTRA_DIST): Remove DOT_OTHER. Add DOC_SCM. Arun Isaac
2021-11-02tests: Add input-output-parameters.cwl.•••This is a follow-up to 0b359cf2c32cde81b4311d55273c8f6c14ca6b93 where this file should have been included. * tests/input-output-parameters.cwl: New file. * Makefile.am (EXTRA_DIST): Register it. Arun Isaac
2021-11-02ccwl: Support external CWL workflows.•••* ccwl/ccwl.scm: Import (yaml). Export cwl-workflow?, cwl-workflow, cwl-workflow-file, cwl-workflow-inputs and cwl-workflow-outputs. (<cwl-workflow>): New type. (cwl-workflow, function-input-keys, function-outputs, function-object): New functions. (command-input-keys, command-object): Delete functions. (collect-steps): Replace command-object with function-object, command-input-keys with function-input-keys and command-outputs with function-outputs. * ccwl/cwl.scm (workflow->cwl-scm): Handle <cwl-workflow> objects. * tests/ccwl.scm ("read all forms of inputs and outputs from a CWL workflow"): New test. * guix.scm: Import (gnu packages guile-xyz) and (guix utils). (guile-libyaml): New variable. (ccwl)[inputs]: Add guile-libyaml. Arun Isaac
2021-11-02guix.scm: Define ccwl as a separate variable.•••This make it easier to refer to it in the changelog. * guix.scm (ccwl): New variable. Return ccwl. Arun Isaac
2021-11-02ccwl: Rename graphviz to dot.•••What we call "graphviz syntax" is actually the "graphviz dot language". Rename accordingly. * ccwl/graphviz.scm (workflow->graphviz): Rename to workflow->dot. Call graph->dot instead of graph->graphviz. (escape-id): Update docstring to mention dot. (graph->graphviz): Rename to graph->dot. Update docstring to mention dot. * scripts/ccwl.in (main): Accept --to=dot instead of --to=graphviz. Update --help usage information. * Makefile.am (%.dot): Pass --to=dot instead of --to=graphviz. Arun Isaac
2021-10-19configure: Warn if emacs is not found.•••* configure.ac (OPTIONAL_PROGRAM): New macro. Use OPTIONAL_PROGRAM to check for emacs. Arun Isaac
2021-10-19configure: Error out if required programs are not found.•••* configure.ac (CHECK_FOR_PROGRAM, REQUIRED_PROGRAM): New macros. Use REQUIRED_PROGRAM to check for dot, cwltool and skribilo. Arun Isaac
2021-10-19guix.scm: Use git-predicate from (guix git-download).•••* guix.scm: Do not import (srfi srfi-1), (srfi srfi-26), (ice-9 match), (ice-9 popen), (ice-9 rdelim) and (guix build utils). Import (guix git-download). (git-file?): Delete function. Use git-predicate from (guix git-download) instead of git-file?. Arun Isaac
2021-10-18doc: Say that inputs, not workflow inputs, come into pipe and tee.•••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. Arun Isaac
2021-10-18ccwl: Fix indentation and paragraph filling.•••* ccwl/ccwl.scm (collect-steps): Fix indentation. (key->output): Fill paragraph. Arun Isaac
2021-10-18ccwl: Implement rename to rename keys between steps.•••* ccwl/ccwl.scm (collect-steps): Implement rename to rename keys between steps. Arun Isaac
2021-10-18ccwl: Improve comment describing handling of single input commands.•••* ccwl/ccwl.scm (collect-steps): Improve comment describing handling of single input commands. Mention that it applies only when no inputs are passed to it. Arun Isaac
2021-10-18ccwl: Add setter for name field of <key> type.•••* ccwl/ccwl.scm (<key>): Add setter set-key-name. Arun Isaac
2021-10-18ccwl: Separate ccwl key from CWL input/output id.•••* ccwl/ccwl.scm (<key>): Add cwl-id field. (key): Initialize cwl-id field. (key->output): Match the cwl-id of keys to the id of outputs, instead of matching the name of keys to the id of outputs. (cwl-key-address): Use the cwl-id of keys when outputting to CWL. Arun Isaac
2021-10-12tests: Fix quoting of type.•••* tests/ccwl.scm ("stdin input should not have inputBinding"): Fix quoting of type File. Arun Isaac
2021-10-12Makefile: Use ccwl to generate graphviz graph.•••* Makefile.am (%.dot): Use ccwl to build %.dot from %.scm instead of cwltool to build %.dot from %.cwl. Arun Isaac
2021-10-12scripts: Allow compiling to graphviz.•••* scripts/ccwl.in: Import (ccwl graphviz). (main): Implement the --to option. Arun Isaac
2021-10-12scripts: Print usage information on --help and incorrect usage.•••* scripts/ccwl.in: Import (srfi srfi-28). (invalid-operand): New function. (%help-option): New variable. (main): Print usage information on --help and incorrect usage. Arun Isaac
2021-10-12scripts: Use args-fold.•••* scripts/ccwl.in: Import (srfi srfi-37). (invalid-option): New function. (main): Use args-fold to extract source filename. Arun Isaac
2021-10-12scripts: Wrap main body in function.•••This makes it easier to record changes in the changelog of commit messages. * scripts/ccwl.in: Invoke main. (main): New function. Arun Isaac
2021-10-12ccwl: Implement compiling to graphviz.•••* ccwl/yaml.scm (indent-level): Import (ccwl utils). Move to ... * ccwl/utils.scm (indent-level): ... here. Export indent-level. * ccwl/graphviz.scm: New file. * Makefile.am (SOURCES): Register it. Arun Isaac
2021-10-11ccwl: Remove unused invoke-command function.•••* ccwl/ccwl.scm (invoke-command): Delete function. Arun Isaac
2021-10-11ccwl: Factorize out CWL generation code to separate file.•••This factorization is required to support other compilation targets such as graphviz, bash, scheme, etc. * ccwl/cwl.scm: New file. * Makefile.am (SOURCES): Register it. * ccwl/ccwl.scm (ccwl): Export command?, command-inputs, command-outputs, command-args, command-stdin, command-other, workflow?, workflow-steps, workflow-inputs, workflow-outputs, workflow-other, input?, input-id, input-type, input-label, input-default, input-position, input-prefix, input-other, output?, output-id, output-type, output-binding, output-source, output-other, step?, step-id, step-run, step-in, step-out, unspecified-default?. (<workflow>): New type. (filter-alist): Move to cwl.scm. (make-workflow): Refactor into workflow->cwl-scm in cwl.scm. (output->cwl): Move to cwl.scm as output->cwl-scm. (command->cwl): Move to cwl.scm as command->cwl-scm. (workflow-steps): Rename to collect-steps. Clarify docstring. (workflow): Use collect-steps instead of workflow-steps. Explicitly pass empty list as other argument of make-workflow. Add TODO note to implement it properly. * scripts/ccwl.in: Import (ccwl cwl) instead of (ccwl yaml). Use workflow->cwl instead of scm->yaml. * tests/ccwl.scm ("stdin input should not have inputBinding"): Use command->cwl-scm from (ccwl cwl) instead of command->cwl from (ccwl ccwl). Arun Isaac
2021-10-11ccwl: Remove unused write-cwl function.•••* ccwl/ccwl.scm: Do not export write-cwl. (write-cwl): Delete function. Arun Isaac
2021-10-07ccwl: Pass workflow inputs through every command.•••We pass workflow inputs through all commands and constructs (pipe, tee, etc.). Thus, these parameters are globally visible to all steps, and are a kind of "global variable". * ccwl/ccwl.scm (workflow-steps): Pass to the output, input keys that correspond to workflow inputs. Arun Isaac
2021-10-06ccwl: Fix the docstring of workflow-steps.•••Before this commit, the docstring of workflow-steps did not correctly describe its function. * ccwl/ccwl.scm (workflow-steps): Fix docstring. Arun Isaac
2021-10-04ccwl: Quote source code in error messages.•••This makes it easier to distinct source code from the regular text of the error messages. * ccwl/ccwl.scm (workflow-steps): Quote source code in error messages. Arun Isaac
2021-10-04ccwl: Support #:allow-other-keys in lambda** and syntax-lambda**.•••* ccwl/utils.scm (lambda**): Support #:allow-other-keys. Update docstring. (syntax-lambda**): Update docstring. * tests/utils.scm ("Allow other keys in lambda**", "Allow other keys in syntax-lambda**"): New tests. Arun Isaac
2021-10-04ccwl: Error out on invalid keywords to lambda**.•••* ccwl/utils.scm (lambda**): Error out on invalid keywords (that is, keywords other than #:key, #:key* and #:allow-other-keys). * tests/utils.scm ("lambda** should error out on unrecognized keywords in arguments"): New test. Arun Isaac
2021-10-04tests: Remove stray syntax-lambda** form.•••* tests/utils.scm: Remove stray syntax-lambda** form. Arun Isaac
2021-10-04Revert "In pipe, pass through input keys to all expressions."•••This reverts commit 35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3. This was not such a good idea. It is better to introduce the notion of global parameters. Arun Isaac
2021-10-04website: Upcase SVG in comment.•••* website/style.css (object): Upcase SVG in comment. Arun Isaac
2021-09-29README: Add a Download section using a dynamic block.•••In addition, we link to the GitHub repo in this new Download section rather than in the Contributing section. * README.org (download): Add dynamic block. (Contributing): Delete github-link dynamic block. * build-aux/build-home-page.el (org-dblock-write:github-link): Delete function. (org-dblock-write:download): New function. Arun Isaac
2021-09-29README: Add GitHub link using an org dynamic block.•••* README.org (Contributing): Add github-link dynamic block. * build-aux/build-home-page.el (org-dblock-write:github-link): New function. (build-website): Update all org dynamic blocks. Do not insert GitHub link using `search-forward' and `insert'. Arun Isaac
2021-09-29Makefile: Record dependency on build-home-page.el.•••* Makefile.am (website/index.html): Depend on build-aux/build-home-page.el. Arun Isaac