Age | Commit message (Collapse) | Author |
|
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).
|
|
* ccwl/ccwl.scm: Do not export write-cwl.
(write-cwl): Delete function.
|
|
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.
|
|
Before this commit, the docstring of workflow-steps did not correctly
describe its function.
* ccwl/ccwl.scm (workflow-steps): Fix docstring.
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
* tests/utils.scm: Remove stray syntax-lambda** form.
|
|
This reverts commit 35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3. This was
not such a good idea. It is better to introduce the notion of global
parameters.
|
|
* website/style.css (object): Upcase SVG in comment.
|
|
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.
|
|
* 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'.
|
|
* Makefile.am (website/index.html): Depend on
build-aux/build-home-page.el.
|
|
* build-aux/build-home-page.el (build-website): Remove redundant
beginning-of-line.
|
|
We programmatically add a link to the GitHub repo before building the
website. This way, the GitHub link will appear only on the website,
and not on the README.org rendered on GitHub.
* build-aux/build-home-page.el (build-website): Add a link to the
GitHub repo before building the website.
|
|
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.
|
|
* build-aux/generate-cwl-output.sh.in: Preserve only the LIBRARY_PATH
environment variable.
|
|
* 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.
|
|
* Makefile.am (CLEANFILES): Clean *.dot, not %.dot.
|
|
* Makefile.am: Set indent-tabs-mode to t.
|
|
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.
|
|
I have tripped up several times on the differences between lambda**
and syntax-lambda**. No longer! Making syntax-lambda** as close as
possible to lambda** makes the code much more readable and align
better with common sense.
* ccwl/utils.scm (syntax-lambda**): Do not ignore the first
identifier. Accept multiple values as arguments, not a single syntax
object.
* ccwl/ccwl.scm (command): Update use of syntax-lambda**.
* tests/utils.scm ("syntax-lambda**", "syntax-lambda** with default
values"): Update tests.
|
|
* build-aux/test-driver.scm.in: Import (ice-9 match).
(my-gnu-runner): Use #t as the expected value for test-assert tests.
|
|
Specifying '() as the default value for n-ary arguments is now
equivalent to specifying '(()) as the default value. This is wrong.
* ccwl/ccwl.scm (command): Do not explicitly specify the emtpy list as
the default value for n-ary arguments.
|
|
* ccwl/utils.scm (lambda**): Set default value of lambda** n-ary
arguments to the empty list. Document this in the docstring.
* tests/utils.scm ("default value of lambda** unary argument should be
#f", "default value of lambda** n-ary argument should be the empty
list"): New tests.
|
|
* ccwl/utils.scm (syntax-lambda**): Add example to docstring
documenting support for default arguments.
* tests/utils.scm ("syntax-lambda** with default values"): New test.
|
|
* ccwl/utils.scm (syntax-lambda**): Clarify difference between and
lambda** and syntax-lambda**.
|
|
* ccwl/utils.scm (lambda**): Support default values for arguments,
both unary and n-ary.
* tests/utils.scm ("lambda** with default values"): New test.
|
|
* tests/utils.scm: New file.
* Makefile.am (SCM_TESTS): Register it.
|
|
* ccwl/utils.scm (pairify, plist->alist, group-keyword-arguments,
plist-ref, syntax-lambda**, filter-mapi, mapn, append-mapn, foldn):
Add examples to docstrings.
|
|
This will be useful when we want build-home-page.el to build both a
website and a gemini capsule.
* build-aux/build-home-page.el (build-website): New function.
* Makefile.am (website/index.html): Call build-website.
|
|
* ccwl/utils.scm (unsyntax-keywords): Add missing syntax in docstring
example.
|
|
The expected value should be the first argument to test-equal. Getting
this order wrong messes up the test logs.
* tests/yaml.scm ("dictionary entries with empty arrays and
dictionaries for values must render on the same line"): Fix order of
arguments to test-equal.
|
|
* tests/ccwl.scm ("stdin input should not have inputBinding"): Fix
indentation.
|
|
* build-aux/test-driver.scm.in: Pass argument color? to my-gnu-runner.
(color, red, green, magenta, my-gnu-runner): Accept argument color?.
|
|
* build-aux/test-driver.scm.in (magenta): New function.
(my-gnu-runner): Color test suite name in magenta.
|
|
* build-aux/test-driver.scm.in (color, red, green): New functions.
(my-gnu-runner): Call red and green instead of stuffing escape codes
into the format string.
|
|
The test driver output is now much cleaner, and actually logs expected
and actual values of failing tests.
* build-aux/test-driver.scm.in (my-gnu-runner): Inherit from
test-runner-null, and improve output.
|
|
* website/releases/ccwl-0.1.0.tar.lz,
website/releases/ccwl-0.1.0.tar.lz.asc: New files.
|
|
* NEWS: New file.
|
|
* .gitignore: Replace website with website/index.html and
website/manual.
|
|
* Makefile.am (CURRENT_RELEASE): New variable.
(release, $(CURRENT_RELEASE), %.asc): New rules.
|
|
* ccwl/ccwl.scm: Remove extra blank lines.
|
|
* website/style.css (code): Set background color to the same gray as
pre code snippets. Pad 0.2 em on the left and the right.
|
|
* doc/ccwl.skb (Tutorial)[Important concepts]: Inline code snippets.
|
|
* doc/ccwl.skb (Tutorial)[Important concepts]: Add python named
arguments example.
|
|
Since we only have a top-level Makefile, top_builddir and builddir are
the same. Use builddir in the interest of brevity.
* Makefile.am (%.go, SCM_LOG_DRIVER, doc/ccwl.info, doc/ccwl.html):
Replace top_builddire with builddir.
|
|
* Makefile.am (SKRIBILO_FLAGS): Add --image-path=$(builddir).
|
|
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.
|
|
* Makefile.am (SKRIBILO_FLAGS): New variable.
(doc/ccwl.info, doc/ccwl.html): Pass $(SKRIBILO_FLAGS) to skribilo.
|