Age | Commit message (Collapse) | Author |
|
Instead of cwl-v1.2-conformance being a script that accepts a path to
the CWL v1.2 conformance test suite, we now work with a CWL v1.2 repo
origin object. This is more declarative, and there is no need for
manual cloning of the cwl-v1.2 git repo on the CI. The CI merely has
to run a script with no arguments. This provides more control here in
the ravanan repo and less configuration on the CI server.
We do likewise for the end-to-end tests. In this case, we work with
files from the ravanan repo, but have to first compile ccwl sources to
CWL workflows.
|
|
This comment should have been moved in
886d2fb0888251487941dc590001b16c36a4ed48, but wasn't.
|
|
|
|
|
|
|
|
End-to-end tests allow us to test the whole of ravanan. This is a
useful sanity check to ensure that basic workflows remain working.
|
|
|
|
ravanan creates the store directory automatically if it does not
exist. So, there is no need to create it before running cwltest.
|
|
Generalize CWL conformance test suite G-expression to run any given
test suite. This will be useful for running other cwltest test suites.
|
|
|
|
There is only one manifest file under cwl-conformance. So, it's ok to
just call it manifest.scm.
|
|
Forgetting to commit required files—classic mistake!
|
|
|
|
These scripts were a part of the CI server system definition, and out
of reach of ravanan maintainers. We move them here since it's easier
to keep updated and within the reach of ravanan maintainers to modify
as they please.
|
|
|
|
|
|
|
|
"more than one" is simpler English.
|
|
|
|
|
|
|
|
|
|
This will enable us to effect global control over the log level.
|
|
Implement logging system with five log levels. Rewrite warning and
user-error in terms of the new logging functions.
|
|
read-workflow and read-inputs now handle &unsupported-uri-scheme
conditions from location->path.
|
|
location->path now raises an &unsupported-uri-scheme condition on
unsupported URI schemes.
|
|
|
|
|
|
read-yaml-file is a wrapper around read-yaml-file from (yaml). It
raises the relevant exceptions when it fails.
|
|
|
|
read-json-file is a wrapper around call-with-input-file and json->scm.
It raises the relevant exceptions when it fails.
|
|
Return monadic value for the default key in normalize-formal-input.
Values returned from maybe-bind must be monadic; compose it with just.
|
|
* ravanan/workflow.scm (workflow-scheduler): Copy resource-requirement
field on scatter steps.
|
|
It is not the responsibility of load-script to canonicalize file
paths; the caller must do that.
* ravanan/utils.scm (load-script): Do not canonicalize script file
path.
|
|
* ravanan/reader.scm (normalize-software-requirement): New function.
(normalize-requirements): Use normalize-software-requirement.
|
|
* ravanan/reader.scm (normalize-env-var-requirement): Re-indent.
|
|
* ravanan/store.scm (step-store-basename): Canonicalize inputs JSON.
* tests/store.scm: New file.
|
|
*
ravanan/command-line-tool.scm (build-command-line-tool-script)[copy-input-files]:
Pass down inputs directory to recursive calls.
|
|
The comment was there earlier, but the code was missing!
* ravanan/command-line-tool.scm (manifest-file->search-path-sexps): Do
not auto-compile manifest files on inferior.
|
|
Canonicalization is unnecessary, and causes trouble when the manifest
file does not exist.
* ravanan/command-line-tool.scm (manifest-file->search-path-sexps,
manifest-file->profile-derivation): Do not canonicalize manifest file
paths.
|
|
*
ravanan/command-line-tool.scm (build-command-line-tool-script)[vector->gexp,
alist->gexp]: New functions.
[run-command-gexp]: Use vector->gexp and alist->gexp.
|
|
* ravanan/command-line-tool.scm (build-gexp-script)
(build-command-line-tool-script): Present a monadic interface.
* ravanan/workflow.scm (workflow->scheduler-proc): Run monadic value
returned by build-command-line-tool-script through the store.
(workflow->scheduler-proc, workflow-class->propnet): Update docstring
about the guix-store argument.
|
|
In the interest of consistency, return search path S-expressions from
both manifest-file->search-path-sexps and
software-packages->search-path-sexps as monadic values.
*
ravanan/command-line-tool.scm (software-packages->search-path-sexps):
Return monadic value.
* ravanan/command-line-tool.scm (build-command-line-tool-script): Use
monadic values from software-packages->search-path-sexps.
|
|
The monadic interface allows more of the building to be done in one go
when build-gexp-script is invoked.
* ravanan/command-line-tool.scm (manifest-file->environment,
software-packages->environment, manifest->environment): Delete
functions.
(inferior-meval-with-store, manifest-file->search-path-sexps,
manifest-file->profile-derivation, software-packages->manifest,
software-packages->search-path-sexps,
software-packages->profile-derivation): New functions.
(build-command-line-tool-script): Use manifest-file->search-paths,
manifest-file->profile-derivation,
software-packages->search-path-sexps and
software-packages->profile-derivation instead of
manifest-file->environment and software-packages->environment.
|
|
Re-using the connection improves performance and is cleaner than
passing around the Guix daemon socket specification.
* ravanan/command-line-tool.scm (manifest-file->environment,
software-packages->environment, manifest->environment,
build-command-line-tool-script, build-gexp-script): Work with store
connection instead of the Guix daemon socket.
* ravanan/workflow.scm: Import (guix store).
(workflow->scheduler-proc, workflow-class->propnet): Work with store
connection instead of the Guix daemon socket.
(build-workflow): Pass a store connection, not the Guix daemon socket,
to workflow->scheduler-proc.
|
|
Spawning inferiors is expensive. Do it only once and re-use the
connection.
* ravanan/command-line-tool.scm (call-with-inferior): Move to (ravanan
workflow).
(manifest-file->environment, software-packages->environment,
build-command-line-tool-script): Accept inferior instead of channels.
* ravanan/workflow.scm: Import (guix inferior).
(workflow->scheduler-proc, workflow-class->propnet): Accept inferior
instead of channels.
(build-workflow): New function.
(run-workflow): Use build-workflow instead of
workflow->scheduler-proc.
|
|
* ravanan/command-line-tool.scm (build-command-line-tool-script):
Clarify it is "disabling WorkReuse" that is unnecessary.
|
|
* ravanan/command-line-tool.scm (build-command-line-tool-script,
find-requirement): Export.
(run-command-line-tool): Accept script as argument instead of cwl. Add
resource-requirement argument. Remove manifest-file, channels, scratch
and guix-daemon-socket arguments.
* ravanan/workflow.scm (<scheduler-proc>):[cwl-or-propnet]: Rename to
script-or-propnet. [resource-requirement]: New field.
* ravanan/workflow.scm (scheduler-proc): Rename cwl-or-propnet
argument to script-or-propnet. Add resource-requirement argument.
(workflow->scheduler-proc, workflow-class->propnet): Add
manifest-file, channels, scratch, store and guix-daemon-socket
arguments.
(workflow->scheduler-proc): Build script. Capture ResourceRequirement.
(workflow-scheduler): Remove manifest-file, channels, scratch and
guix-daemon-socket arguments.
[schedule]: Run built script instead of CWL. Update call to
run-command-line-tool.
(run-workflow): Do not pass manifest-file, channels, scratch and
guix-daemon-socket arguments to workflow-scheduler. Pass
manifest-file, channels, scratch, store and guix-daemon-socket
arguments to workflow->scheduler-proc.
|
|
* ravanan/workflow.scm (workflow->scheduler-proc): Make scatter and
scatter-method arguments optional.
|
|
* ravanan/workflow.scm (<scheduler-proc>): Rename constructor to
-scheduler-proc.
(scheduler-proc): New function.
|