Age | Commit message (Collapse) | Author |
|
* ccwl/cwl.scm (workflow-or-command->dot): New public function.
|
|
* ccwl/graphviz.scm (step-node, inputs-cluster, outputs-cluster,
command->graph): New functions.
(workflow->graph): Use step-node, inputs-cluster and outputs-cluster.
(command->dot): New public function.
|
|
* ccwl/cwl.scm (workflow-or-command->cwl): New public function.
|
|
* ccwl/cwl.scm (command->cwl): New public function.
|
|
* scripts/ccwl (main): Catch and report &formatted-message conditions.
|
|
* ccwl/ui.scm (report-formatted-message): New public function.
(report-ccwl-violation): Use report-formatted-message.
|
|
* scripts/ccwl: Import (ice-9 exceptions).
(main): Do not print backtrace or request the user to report a bug for
quit exceptions.
|
|
* scripts/ccwl: Set scheme mode in Emacs.
|
|
* scripts/ccwl (main): Catch uncaught exceptions and request the user
report them to the issue tracker.
|
|
Call main from the shebang command instead of calling it
directly. This allows us to run "guile -l scripts/ccwl" without
actually running main. This seems to be important for Emacs Geiser as
it freezes up without this fix.
* scripts/ccwl: Call main from shebang. Do not call main directly.
(main): Accept args as regular argument instead of as a rest argument.
|
|
* ccwl/ccwl.scm (function-object): Add TODO note to support
commands (that is, function objects) defined in lexical scope.
|
|
* tests/ccwl.scm (print): New variable.
("rename should work even on the final output of a workflow"): New
test.
|
|
The key may have been renamed. So, the output should likewise be.
* ccwl/ccwl.scm (key->output): Use key name for output.
|
|
* ccwl/ccwl.scm (<output>)[id]: Add setter.
|
|
* .guix-authorizations, .guix-channel: New files.
* guix.scm: Convert to a symlink pointing to
.guix/ccwl-package.scm. Move original there.
* .guix/ccwl-package.scm: Convert into a module with public packages.
|
|
* Makefile (fonts): New variable.
(website): Depend on website/fonts.
(website/fonts): New target.
(clean): Clean up website/fonts.
* website/style.css (@font-face: Charter, @font-face: Fira Code
Regular, @font-face: Fira Code SemiBold): New font faces.
(body): Use 20px Charter font.
(pre): Use 0.9em Fira Code font.
(code, samp): Use 0.8em semi-bold Fira Code font.
|
|
* doc/ccwl.skb: Add table of contents.
|
|
* scripts/ccwl: Do not pass multiple arguments to env. Pass them
through sh.
|
|
* scripts/ccwl: Add --no-auto-compile to shebang.
|
|
* Makefile (%.go): Set GUILE_AUTO_COMPILE=0.
|
|
* README.org (Manually from source): Mention dependencies graphviz,
cwltool and skribilo that are required to build the manual.
|
|
In 670b0b68602288b44ad459230be4f701140bca66, we migrated away from the
autotools build system and got rid of bootstrap.sh but forgot to
update the build instructions.
* README.org (Manually from source): Remove deprecated bootstrap step.
|
|
This was done correctly in the earlier autotools build system, but was
missed out in the migration to hand-written Makefiles.
* Makefile (website): Depend on website/manual/dev/en.
(website/manual/dev/en): New target.
(clean): Remove website/manual. Remove $(doc_html) recursively.
|
|
* build-aux/build-home-page.el (org-dblock-write:download): Fix broken
link to signing key.
|
|
* ccwl/ccwl.scm (collect-steps): Raise parameter errors in workflow
steps as exceptions.
|
|
* ccwl/ccwl.scm (collect-steps): Raise undefined ccwl command error as
a &ccwl-violation condition.
|
|
* ccwl/ccwl.scm (command): Raise &ccwl-violation conditions on syntax
errors.
* tests/ccwl.scm ("command, when passed positional arguments, must
raise a &ccwl-violation condition", "command, when passed an
unrecognized keyword, must raise a &ccwl-violation condition",
"command, when passed multiple arguments to a unary keyword, must
raise a &ccwl-violation condition"): New tests.
|
|
* ccwl/ccwl.scm (output): Raise &ccwl-violation conditions on syntax
errors.
* tests/ccwl.scm (output): New function.
("output, when passed more than one positional argument, must raise a
&ccwl-violation condition", "output, when passed an unrecognized
keyword, must raise a &ccwl-violation condition", "output, when passed
multiple arguments to a unary keyword, must raise a &ccwl-violation
condition"): New tests.
|
|
* ccwl/ccwl.scm: Import (rnrs conditions), (rnrs exceptions) and (ccwl
conditions).
(input, input-spec-id): Raise &ccwl-violation
conditions on syntax errors.
* tests/ccwl.scm: Import (rnrs exceptions) and (ccwl conditions).
(input): New function.
("input, when passed more than one positional argument, must raise a
&ccwl-violation condition", "input, when passed an unrecognized
keyword, must raise a &ccwl-violation condition", "input, when passed
multiple arguments to a unary keyword, must raise a &ccwl-violation
condition"): New tests.
|
|
plist->alist is not used anywhere. pairify is quite sufficient to take
on its functionality.
* ccwl/utils.scm (plist->alist): Delete function.
* tests/utils.scm ("plist->alist"): Delete test.
|
|
* ccwl/utils.scm (syntax-lambda**): Document default default value.
* tests/utils.scm ("default default value of syntax-lambda** unary
argument should be #f", "default default value of syntax-lambda**
n-ary argument should be the empty list"): New tests.
|
|
* ccwl/utils.scm (lambda**): Change "default value" to "default
default value" in 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"): Change "default value" to "default default value".
|
|
Macros should not normally expand to syntax values as constant
literals. We now do more work at the macro-expansion phase so that
this is not necessary.
* ccwl/ccwl.scm (collect-steps): In the returned <step> objects, put
syntax to reference function object instead of the function object
itself.
(key->output): Return syntax to construct an <output> object instead
of the <output> object itself.
(workflow): Do not expand to syntax values as constant literals.
|
|
The out field of a <step> object can be derived from its run
field. There is no need to store it. Therefore, we remove the out
field and implement the accessor step-out as a separate function so
that we don't break existing code. We also move around some code so
that all variables are defined before they are used.
* ccwl/ccwl.scm (function-objects): Move to just after <command> and
<cwl-workflow> type definitions.
(<step>): Remove out field. Move to after function-objects.
(step-out): New function.
(collect-steps): Do not set out field of <step> object.
|
|
* scripts/ccwl (main): Remove FIXME note about compiling ccwl files.
|
|
* ccwl/ui.scm: New file.
* scripts/ccwl: Import (rnrs exceptions), (srfi srfi-28), (ccwl
conditions) and (ccwl ui).
(main): Handle ccwl syntax violations by reporting them and exiting.
|
|
read-syntax gives us get better source properties.
* scripts/ccwl (main): Read using read-syntax.
|
|
* ccwl/conditions.scm (&formatted-message): New condition.
(formatted-message): New function.
|
|
This is a purely cosmetic change just to keep definitions outside the
test cases.
* tests/utils.scm (plist-ref): Move ahead of test-begin.
|
|
* 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.
|
|
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.
|
|
@@ 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.
|
|
* ccwl/utils.scm (lambda**): Indent docstring examples correctly.
|
|
* .dir-locals.el (makefile-gmake-mode): Set indent-tabs-mode to t.
|
|
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.
|
|
* ccwl/graphviz.scm (<graph-edge>): New type.
(graph-edge): New function.
(graph->dot): Support specification of edges using the <graph-edge>
type.
|
|
* ccwl/graphviz.scm (serialize-properties): New function.
(graph->dot): Use serialize-properties.
|
|
* 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.
|
|
* ccwl/graphviz.scm (serialize): Organize into a generic function that
dispatches on input type.
|
|
* 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.
|