summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-10dir-locals: Allows tabs in Makefiles.Arun Isaac
* .dir-locals.el (makefile-gmake-mode): Set indent-tabs-mode to t.
2022-01-10Migrate to hand-written Makefiles.Arun Isaac
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.
2021-12-17Create specialized type for graphviz edge.Arun Isaac
* ccwl/graphviz.scm (<graph-edge>): New type. (graph-edge): New function. (graph->dot): Support specification of edges using the <graph-edge> type.
2021-12-17Abstract out serialization of graphviz properties.Arun Isaac
* ccwl/graphviz.scm (serialize-properties): New function. (graph->dot): Use serialize-properties.
2021-12-13ccwl: Support graphviz node ports.Arun Isaac
* 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.
2021-12-13ccwl: Organize serialize into a generic function.Arun Isaac
* ccwl/graphviz.scm (serialize): Organize into a generic function that dispatches on input type.
2021-12-13ccwl: Escape only the double quote character in graphviz output.Arun Isaac
* 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.
2021-12-13ccwl: Support graphviz HTML strings.Arun Isaac
* 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.
2021-12-10guix.scm: Base ccwl package off upstream Guix package.Arun Isaac
* 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.
2021-12-10README: Recommend Guix to set up a development environment.Arun Isaac
* README.org (Contributing): Recommend Guix to set up a development environment.
2021-12-10README: Recommend upstream Guix package for installation.Arun Isaac
* README.org (Installation)[Using Guix]: Recommend upstream Guix package.
2021-12-09contrib: Add pggb workflow.Arun Isaac
* contrib/pggb.scm: New file.
2021-11-29README: Emphasize that manual installation is from source.Arun Isaac
* README.org (Installation)[Manually]: Rename to "Manually from source".
2021-11-29README: Add instructions for installation using software bundles.Arun Isaac
* README.org (Installation)[Using binary software bundles]: New subsection.
2021-11-29Makefile: Build software bundles.Arun Isaac
* Makefile.am (docker, pack): New targets.
2021-11-29guix.scm: Add a wrap phase.Arun Isaac
* guix.scm (ccwl)[arguments]: Import target-guile-effective-version from (guix build guile-build-system). Add a wrap phase.
2021-11-25guix.scm: Bump version.Arun Isaac
* guix.scm (ccwl)[version]: Set to 0.2.0.
2021-11-25guix.scm: Use the upstream Guix guile-libyaml package.Arun Isaac
* guix.scm: Do not prefix import of (gnu packages guile-xyz) with guix: (guile-libyaml): Delete variable.
2021-11-19README: Add installation instructions.Arun Isaac
* README.org (Installation): New section.
2021-11-19guix.scm: Replace guix environment with guix shell.Arun Isaac
guix environment has been superseded by guix shell. * guix.scm: Replace guix environment with guix shell.
2021-11-06Release version 0.2.0.v0.2.0Arun Isaac
* 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.
2021-11-05doc: Search source-path in scheme-source-form.Arun Isaac
* doc/skribilo.scm (scheme-source-form): Search source-path.
2021-11-05build-aux: Extract dependencies from scheme-source-form.Arun Isaac
* build-aux/find-dependencies.scm (find-dependencies): Extract dependencies from scheme-source-form.
2021-11-05build-aux: Delete duplicates in dependencies.Arun Isaac
* build-aux/find-dependencies.scm: Delete duplicates before printing out dependencies.
2021-11-05gitignore: Ignore dot files.Arun Isaac
* .gitignore: Add doc/*.dot.
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-05build-aux: Hide doc/cwl-output in the manual output snippets.Arun Isaac
* build-aux/generate-cwl-output.sh.in: In the sed invocation, replace doc/cwl-output too.
2021-11-05website: Do not specify line-height on h1, h2 and h3.Arun Isaac
* website/style.css (h1, h2, h3): Delete line-height CSS property.
2021-11-05Makefile: Copy images without recursion.Arun Isaac
* Makefile.am (doc/ccwl.html): Copy images without recursion.
2021-11-05Makefile: Delete target if recipe fails.Arun Isaac
Without this, when recipes involving output redirection fail, their targets are not deleted. * Makefile.am (.DELETE_ON_ERROR): New target.
2021-11-05Makefile: Create doc directory before populating it.Arun Isaac
* Makefile.am (doc/.dirstamp): New target. ($(DOC_IMAGES:.png=.dot), $(DOC_OUT)): Depend on doc/.dirstamp. (CLEAN_DIRECTORIES): Add doc/.dirstamp.
2021-11-05Makefile: Do not clean files based on extension.Arun Isaac
* Makefile.am (CLEANFILES): Replace doc/*.cwl, doc/*.dot, doc/*.out and doc/*.png with DOC_SCM, DOC_IMAGES and DOC_OUT variables.
2021-11-05Makefile: Distinguish DOC_OTHER from DOC_OUT.Arun Isaac
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.
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-11-04Makefile: Distribute doc/hello.c.gz. and doc/hello.txt.Arun Isaac
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.
2021-11-04Makefile: Pass auxiliary dependencies from automatic variables.Arun Isaac
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.
2021-11-04build-aux: Use paths relative to top-level in generate-cwl-output.sh.Arun Isaac
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.
2021-11-02configure: Check for (yaml) guile module.Arun Isaac
* configure.ac: Check for (yaml) guile module.
2021-11-02Makefile: Distribute doc/hello.tar.Arun Isaac
doc/hello.tar is used to build doc/hello.tar.out. * Makefile.am (EXTRA_DIST): Add doc/hello.tar.
2021-11-02Makefile: Do not distribute *.out files.Arun Isaac
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.
2021-11-02tests: Add input-output-parameters.cwl.Arun Isaac
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.
2021-11-02ccwl: Support external CWL workflows.Arun Isaac
* 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.
2021-11-02guix.scm: Define ccwl as a separate variable.Arun Isaac
This make it easier to refer to it in the changelog. * guix.scm (ccwl): New variable. Return ccwl.
2021-11-02ccwl: Rename graphviz to dot.Arun Isaac
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.
2021-10-19configure: Warn if emacs is not found.Arun Isaac
* configure.ac (OPTIONAL_PROGRAM): New macro. Use OPTIONAL_PROGRAM to check for emacs.
2021-10-19configure: Error out if required programs are not found.Arun Isaac
* configure.ac (CHECK_FOR_PROGRAM, REQUIRED_PROGRAM): New macros. Use REQUIRED_PROGRAM to check for dot, cwltool and skribilo.
2021-10-19guix.scm: Use git-predicate from (guix git-download).Arun Isaac
* 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?.
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-10-18ccwl: Fix indentation and paragraph filling.Arun Isaac
* ccwl/ccwl.scm (collect-steps): Fix indentation. (key->output): Fill paragraph.