about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2 daysguix: Do not pass -S flag when skip-tests is empty list.Arun Isaac
2 daysguix: Exclude .guix when building ravanan.Arun Isaac
2 daysguix: Add e2e-tests.Arun Isaac
2 daysAdd end-to-end tests.Arun Isaac
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.
2 daysAdd manifest for development environment.Arun Isaac
2 daysguix: Do not create store when running cwltest suite.Arun Isaac
ravanan creates the store directory automatically if it does not exist. So, there is no need to create it before running cwltest.
2 daysguix: Generalize CWL conformance test suite G-expression.Arun Isaac
Generalize CWL conformance test suite G-expression to run any given test suite. This will be useful for running other cwltest test suites.
2 daysguix: Comment on setting TMPDIR when running cwltest.Arun Isaac
4 daysRename cwl-conformance/cwltest-manifest.scm.Arun Isaac
There is only one manifest file under cwl-conformance. So, it's ok to just call it manifest.scm.
5 daysAdd CWL conformance test helper files.Arun Isaac
Forgetting to commit required files—classic mistake!
5 daysREADME: Remove invalid "require" badge from CWL conformance badges.Arun Isaac
5 daysguix: Add CWL conformance test suite scripts.Arun Isaac
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.
7 daysREADME: Add CWL conformance badges from CI.Arun Isaac
8 daysdir-locals: Indent run-with-state.Arun Isaac
8 daysguix: Add cwltest package.Arun Isaac
8 daysbin: Replace "multiple" with "more than one".Arun Isaac
"more than one" is simpler English.
8 dayswork/command-line-tool: Canonicalize path in File values.Arun Isaac
8 dayswork/command-line-tool: Always reconstruct location from path.Arun Isaac
8 daysAdd --quiet flag to suppress all logging.Arun Isaac
8 daysbin: Allow controlling log level via --log-level.Arun Isaac
8 daysUse the new logging functions for all logging.Arun Isaac
This will enable us to effect global control over the log level.
8 dayswork/ui: Implement logging system.Arun Isaac
Implement logging system with five log levels. Rewrite warning and user-error in terms of the new logging functions.
9 daysreader: Handle &unsupported-uri-scheme conditions.Arun Isaac
read-workflow and read-inputs now handle &unsupported-uri-scheme conditions from location->path.
9 dayswork/command-line-tool: Raise exception on unsupported URI schemes.Arun Isaac
location->path now raises an &unsupported-uri-scheme condition on unsupported URI schemes.
9 daysreader: Capture and report exceptions in read-inputs.Arun Isaac
9 daysreader: Capture and report exceptions in read-workflow.Arun Isaac
10 daysreader: Add read-yaml-file.Arun Isaac
read-yaml-file is a wrapper around read-yaml-file from (yaml). It raises the relevant exceptions when it fails.
10 daysreader: Use read-json-file in read-inputs.Arun Isaac
10 daysreader: Add read-json-file.Arun Isaac
read-json-file is a wrapper around call-with-input-file and json->scm. It raises the relevant exceptions when it fails.
10 daysreader: Return monadic value in normalize-formal-input.Arun Isaac
Return monadic value for the default key in normalize-formal-input. Values returned from maybe-bind must be monadic; compose it with just.
2025-06-29workflow: Copy resource-requirement field on scatter steps.Arun Isaac
* ravanan/workflow.scm (workflow-scheduler): Copy resource-requirement field on scatter steps.
2025-06-29utils: Do not canonicalize script file path before loading.Arun Isaac
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.
2025-06-29reader: Read manifest files with respect to the workflow file.Arun Isaac
* ravanan/reader.scm (normalize-software-requirement): New function. (normalize-requirements): Use normalize-software-requirement.
2025-06-29reader: Re-indent normalize-env-var-requirement.Arun Isaac
* ravanan/reader.scm (normalize-env-var-requirement): Re-indent.
2025-06-27store: Canonicalize inputs JSON before constructing store paths.Arun Isaac
* ravanan/store.scm (step-store-basename): Canonicalize inputs JSON. * tests/store.scm: New file.
2025-06-26command-line-tool: Pass down inputs directory to recursive calls.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[copy-input-files]: Pass down inputs directory to recursive calls.
2025-06-26command-line-tool: Do not auto-compile manifest files on inferior.Arun Isaac
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.
2025-06-26command-line-tool: Do not canonicalize manifest file paths.Arun Isaac
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.
2025-06-26command-line-tool: Wrap vectors and alists when embedding in G-exps.Arun Isaac
* 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.
2025-06-26command-line-tool: Present a monadic interface to building scripts.Arun Isaac
* 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.
2025-06-26command-line-tool: Return all search path S-exps as monadic values.Arun Isaac
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.
2025-06-26command-line-tool: Handle manifest monadically.Arun Isaac
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.
2025-06-26workflow: Re-use single connection to the Guix daemon.Arun Isaac
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.
2025-06-26workflow: Spawn an inferior only once.Arun Isaac
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.
2025-06-26command-line-tool: Clarify disabling WorkReuse message.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script): Clarify it is "disabling WorkReuse" that is unnecessary.
2025-06-26workflow: Build scripts ahead of time.Arun Isaac
* 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.
2025-06-26workflow: Make scatter arguments optional in workflow->scheduler-proc.Arun Isaac
* ravanan/workflow.scm (workflow->scheduler-proc): Make scatter and scatter-method arguments optional.
2025-06-26workflow: Introduce optional fields in scheduler-proc constructor.Arun Isaac
* ravanan/workflow.scm (<scheduler-proc>): Rename constructor to -scheduler-proc. (scheduler-proc): New function.
2025-06-26workflow: Build out propagator network eagerly.Arun Isaac
Build out propagator network eagerly descending into the lowest subworkflows. This will come in handy later on to build the G-exp scripts ahead of time before the workflow is run. * ravanan/workflow.scm (<scheduler-proc>)[cwl]: Rename to cwl-or-propnet. [formal-inputs, formal-outputs]: New fields. * ravanan/workflow.scm (workflow->scheduler-proc): New function. (workflow-class->propnet): Build out propagator network eagerly. (workflow-scheduler)[schedule]: Handle eagerly built-out propagator network <schedule-proc> objects. (run-workflow): Use workflow->scheduler-proc to convert workflow to <scheduler-proc> object.
2025-06-26workflow: Eliminate command-line-tool->propagator.Arun Isaac
command-line-tool->propagator was packaging up both CommandLineTool and Workflow class workflows into <scheduler-proc> objects. It was named erroneously. We now merge it into step->propagator. * ravanan/workflow.scm (command-line-tool->propagator): Merge into ... (workflow-class->propnet)[step->propagator]: ... here.