aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2022-01-16tests: Move plist-ref ahead of test-begin.•••This is a purely cosmetic change just to keep definitions outside the test cases. * tests/utils.scm (plist-ref): Move ahead of test-begin. Arun Isaac
2022-01-16ccwl: Raise lambda** and syntax-lambda** errors as exceptions.•••* ccwl/conditions.scm (&unrecognized-keyword-assertion, &invalid-keyword-arity-assertion, &invalid-positional-arguments-arity-assertion): New conditions. * ccwl/utils.scm: Import (rnrs conditions), (rnrs exceptions) and (ccwl conditions). (group-keyword-arguments): Raise &invalid-keyword-arity-assertion on error. (lambda**, syntax-lambda**): Raise &unrecognized-keyword-assertion, &invalid-keyword-arity-assertion and &invalid-positional-arguments-arity-assertion on error. * tests/utils.scm: Import (rnrs conditions), (rnrs exceptions), (srfi srfi-1) and (ccwl conditions). ("lambda** should raise an &unrecognized-keyword-assertion on unrecognized keywords in arguments with syntax objects as irritants"): Check for &unrecognized-keyword-assertion. ("Unrecognized keyword argument passed to lambda** should raise an &unrecognized-keyword-assertion condition", "Unary lambda** keyword argument passed multiple arguments should raise an &invalid-keyword-arity-assertion condition", "Wrong number of positional arguments to lambda** should raise an &invalid-positional-arguments-arity-assertion condition", "syntax-lambda** should raise an &unrecognized-keyword-assertion on unrecognized keywords in arguments", "Unrecognized keyword argument passed to syntax-lambda** should raise an &unrecognized-keyword-assertion condition with syntax objects as irritants", "Unary syntax-lambda** keyword argument passed multiple arguments should raise an &invalid-keyword-arity-assertion condition", "Wrong number of positional arguments to syntax-lambda** should raise an &invalid-positional-arguments-arity-assertion condition"): New tests. Arun Isaac
2022-01-16ccwl: Add conditions.•••We introduce the &ccwl-violation condition. In later commits, it will be used to indicate ccwl syntax violations and to print out useful compiler errors. * ccwl/conditions.scm: New file. Arun Isaac
2022-01-16tests: Use @@ instead of module-ref and resolve-module.•••@@ is shorter and looks neater with fewer quotes. * tests/ccwl.scm ("stdin input should not have inputBinding"), tests/utils.scm ("unsyntax-keywords"): Use @@ instead of module-ref and resolve-module. Arun Isaac
2022-01-16ccwl: Indent lambda** docstring examples correctly.•••* ccwl/utils.scm (lambda**): Indent docstring examples correctly. Arun Isaac
2022-01-10dir-locals: Allows tabs in Makefiles.•••* .dir-locals.el (makefile-gmake-mode): Set indent-tabs-mode to t. Arun Isaac
2022-01-10Migrate to hand-written Makefiles.•••The autotools are really overkill for a simple Guile project like ccwl. * .gitignore: Delete autotool generated files. Add Makefile.include. * Makefile.am, Makefile, build-aux/distcheck.scm, configure, configure.ac, configure.scm: New files. * NEWS: Rename to NEWS.org. Remove Emacs file-local variable to use org mode. * bootstrap.sh: Delete file. * build-aux/generate-cwl-output.sh.in: Rename to ... * build-aux/generate-cwl-output.sh: ... this. Replace autoconf variables for cwltool and sed. * build-aux/test-driver.scm.in: Rename to ... * build-aux/test-driver.scm: ... this. Do not import (ice-9 getopt-long). (%options): Delete variable. (my-gnu-runner): Do not write to log or trs ports. Accept test files as command-line arguments. Update invocation of my-gnu-runner. Print summary of results. * guix.scm (ccwl)[native-inputs]: Remove autoconf and automake. * pre-inst-env.in: Rename to ... * pre-inst-env: ... this. Replace autoconf variables for guile, abs_top_builddir and abs_top_srcdir. * scripts/ccwl.in: Rename to ... * scripts/ccwl: ... this. Replace autoconf variable for guile. Arun Isaac
2021-12-17Create specialized type for graphviz edge.•••* ccwl/graphviz.scm (<graph-edge>): New type. (graph-edge): New function. (graph->dot): Support specification of edges using the <graph-edge> type. Arun Isaac
2021-12-17Abstract out serialization of graphviz properties.•••* ccwl/graphviz.scm (serialize-properties): New function. (graph->dot): Use serialize-properties. Arun Isaac
2021-12-13ccwl: Support graphviz node ports.•••* ccwl/graphviz.scm (<graph-port>): New type. (serialize): Support <graph-port> objects. * tests/graphviz.scm (graph-port): New function. ("serialize ports correctly"): New test case. Arun Isaac
2021-12-13ccwl: Organize serialize into a generic function.•••* ccwl/graphviz.scm (serialize): Organize into a generic function that dispatches on input type. Arun Isaac
2021-12-13ccwl: Escape only the double quote character in graphviz output.•••* ccwl/graphviz.scm: Import (ice-9 string-fun). (serialize): When quoting strings, escape only the double quote character. * tests/graphviz.scm ("do not escape backslashes"): New test case. Arun Isaac
2021-12-13ccwl: Support graphviz HTML strings.•••* ccwl/graphviz.scm (<html-string>): New type. (escape-id): Delete function. (serialize): New function. (graph->dot): Use serialize instead of escape-id. * tests/graphviz.scm: New file. ("serialize HTML strings correctly"): New test case. * Makefile.am (SCM_TESTS): Register it. Arun Isaac
2021-12-10guix.scm: Base ccwl package off upstream Guix package.•••* guix.scm: Do not import (gnu packages graphviz), (gnu packages guile), (gnu packages guile-xyz), (gnu packages pkg-config), (gnu packages skribilo), (gnu packages texinfo), (guix build-system gnu), (guix licenses) and (guix utils). Import (gnu packages bioinformatics) with the guix: prefix. (ccwl): Base off upstream Guix package. Arun Isaac
2021-12-10README: Recommend Guix to set up a development environment.•••* README.org (Contributing): Recommend Guix to set up a development environment. Arun Isaac
2021-12-10README: Recommend upstream Guix package for installation.•••* README.org (Installation)[Using Guix]: Recommend upstream Guix package. Arun Isaac
2021-12-09contrib: Add pggb workflow.•••* contrib/pggb.scm: New file. Arun Isaac
2021-11-29README: Emphasize that manual installation is from source.•••* README.org (Installation)[Manually]: Rename to "Manually from source". Arun Isaac
2021-11-29README: Add instructions for installation using software bundles.•••* README.org (Installation)[Using binary software bundles]: New subsection. Arun Isaac
2021-11-29Makefile: Build software bundles.•••* Makefile.am (docker, pack): New targets. Arun Isaac
2021-11-29guix.scm: Add a wrap phase.•••* guix.scm (ccwl)[arguments]: Import target-guile-effective-version from (guix build guile-build-system). Add a wrap phase. Arun Isaac
2021-11-25guix.scm: Bump version.•••* guix.scm (ccwl)[version]: Set to 0.2.0. Arun Isaac
2021-11-25guix.scm: Use the upstream Guix guile-libyaml package.•••* guix.scm: Do not prefix import of (gnu packages guile-xyz) with guix: (guile-libyaml): Delete variable. Arun Isaac
2021-11-19README: Add installation instructions.•••* README.org (Installation): New section. Arun Isaac
2021-11-19guix.scm: Replace guix environment with guix shell.•••guix environment has been superseded by guix shell. * guix.scm: Replace guix environment with guix shell. Arun Isaac
2021-11-06Release version 0.2.0.•••* configure.ac: Bump version. * NEWS: Update news. * website/releases/ccwl-0.2.0.tar.lz, website/releases/ccwl-0.2.0.tar.lz.asc: New files. v0.2.0Arun Isaac
2021-11-05doc: Search source-path in scheme-source-form.•••* doc/skribilo.scm (scheme-source-form): Search source-path. Arun Isaac
2021-11-05build-aux: Extract dependencies from scheme-source-form.•••* build-aux/find-dependencies.scm (find-dependencies): Extract dependencies from scheme-source-form. Arun Isaac
2021-11-05build-aux: Delete duplicates in dependencies.•••* build-aux/find-dependencies.scm: Delete duplicates before printing out dependencies. Arun Isaac
2021-11-05gitignore: Ignore dot files.•••* .gitignore: Add doc/*.dot. Arun Isaac
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