aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-06command-line-tool: Bubble up manifest file errors to the top level.HEADmainArun Isaac
* ravanan/command-line-tool.scm: Import (rnrs conditions) and (rnrs exceptions). (&manifest-file-error): New condition type. (load-manifest): Raise &manifest-file-error when loading the manifest file fails. * bin/ravanan: Import (rnrs exceptions) and (ravanan command-line-tool). (main): Handle manifest file errors bubbled up from lower down the stack.
2024-11-06bin: Remove default Guix manifest.Arun Isaac
* bin/ravanan (main): Remove default Guix manifest.
2024-11-06command-line-tool: Support packages in SoftwareRequirement.Arun Isaac
* ravanan/command-line-tool.scm: Import (gnu packages). (specifications->environment): New function. (build-command-line-tool-script)[software-package->package-specification]: New function. Build environment from packages if specified.
2024-11-06command-line-tool: Allow processing manifest objects without a file.Arun Isaac
* ravanan/command-line-tool.scm (manifest->environment): New function. (manifest-file->environment)[build-derivation]: Delete function. Call manifest->environment.
2024-11-06bin: Add --guix-channels command-line argument.Arun Isaac
* bin/ravanan: Import (guix channels). (%options): Add guix-channels. (print-usage): Document it. (main): Load channels from channels file if specified.
2024-11-06command-line-tool: Build manifest in Guix inferior with channels.Arun Isaac
* ravanan/command-line-tool.scm: Import (guix inferior). (call-with-inferior): New function. (run-command-line-tool): Accept channels argument and pass it on to build-command-line-tool-script. (build-command-line-tool-script): Accept channels argument and pass it on to manifest-file->environment. (manifest-file->environment): Accept channels argument. Build manifest in Guix inferior when channels is provided. * ravanan/workflow.scm (workflow-scheduler): Accept channels argument and pass it on to run-command-line-tool. (run-workflow): Accept channels argument and pass it on to workflow-scheduler. * bin/ravanan (main): Pass #f as channels to run-workflow.
2024-11-06command-line-tool: Convert manifest to environment in new function.Arun Isaac
* ravanan/command-line-tool.scm (manifest-file->environment): New function. (build-command-line-tool-script): Use manifest-file->environment.
2024-11-06utils: Generalize load-manifest and move to (ravanan utils).Arun Isaac
* ravanan/utils.scm: Import (ice-9 filesystem) and (ice-9 match). (load-script): New function. * ravanan/command-line-tool.scm: Import (ravanan utils). (load-manifest): Use load-script.
2024-11-06command-line-tool: Implement WorkReuse.Arun Isaac
* ravanan/command-line-tool.scm (%command-line-tool-supported-requirements): Add WorkReuse. * ravanan/command-line-tool.scm (build-command-line-tool-script): Implement WorkReuse.
2024-11-06command-line-tool: Fit Guix manifest into SoftwareRequirement.Arun Isaac
* ravanan/command-line-tool.scm (%command-line-tool-supported-requirements): Replace GuixManifestRequirement with SoftwareRequirement. (build-command-line-tool-script): Look for SoftwareRequirement instead of GuixManifestRequirement.
2024-11-06slurm-api: Find state of purged jobs.Arun Isaac
* ravanan/slurm-api.scm (job-state): Query slurmdb for jobs that have been purged from slurmctld's active memory.
2024-11-06slurm-api: Deduplicate API error checks.Arun Isaac
* ravanan/slurm-api.scm (check-api-error): New function. (submit-job, job-state): Use check-api-error.
2024-11-06slurm-api: Upgrade to API version 0.0.41.Arun Isaac
* ravanan/slurm-api.scm (submit-job, job-state): Upgrade to API version 0.0.41. (job-state): Handle job_state as a vector of strings.
2024-11-06README: Add ravanan pronunciation.Arun Isaac
* README.md: Add ravanan pronunciation.
2024-10-11workflow: Report file interning.Arun Isaac
* ravanan/workflow.scm (intern-file): Report file interning.
2024-10-11workflow: Do not re-intern files that have already been interned.Arun Isaac
* ravanan/workflow.scm (intern-file): Do not re-intern files that have already been interned into the store.
2024-10-11command-line-tool: Compute hash of stdout file.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[path+sha1->value]: New function. [path->value]: Implement in terms of path+sha1->value. [stdout-output->value]: Use path+sha1->value.
2024-10-11command-line-tool: Recompute checksum only if it is not provided.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[canonicalize-file-value]: Recompute checksum only if it is not provided.
2024-10-10workflow: Recompute checksum only if it is not provided.Arun Isaac
* ravanan/workflow.scm (intern-file): Accept and return File type value, and recompute the SHA1 hash only if it is not provided in the checksum field. (resolve-inputs): Recompute checksum only if it is not provided. Update call to intern-file.
2024-10-10slurm-api: Allow requesting for a nice adjustment.Arun Isaac
* ravanan/batch-system.scm (<slurm-api-batch-system>)[nice]: Add field. * bin/ravanan (%options): Add slurm-nice. (print-usage): Document it. (main): Initialize nice field of <slurm-api-batch-system> object. * ravanan/command-line-tool.scm (run-command-line-tool): Pass #:nice argument to submit-job. * ravanan/slurm-api.scm (submit-job): Accept #:nice argument.
2024-10-09slurm-api: Allow requesting for a specific partition.Arun Isaac
* ravanan/batch-system.scm (<slurm-api-batch-system>)[partition]: Add field. * bin/ravanan (%options): Add slurm-partition. (print-usage): Document it. (main): Initialize partition field of <slurm-api-batch-system> object. * ravanan/command-line-tool.scm (run-command-line-tool): Pass #:partition argument to submit-job. * ravanan/slurm-api.scm (submit-job): Accept #:partition argument.
2024-10-09batch-system: Introduce <slurm-api-batch-system> record type.Arun Isaac
A <slurm-api-batch-system> record type allows us an easy way to group and pass along parameters required by the slurm-api batch system. * ravanan/batch-system.scm: New file. * bin/ravanan: Import (ravanan batch-system). (main): Create <slurm-api-batch-system> object for batch-system argument. Do not pass #:slurm-api-endpoint and #:slurm-jwt arguments. * ravanan/command-line-tool.scm: Import (ravanan batch-system). (command-line-tool-supported-requirements): Check for slurm-api batch system using slurm-api-batch-system?. (run-command-line-tool): Check for slurm-api batch system using slurm-api-batch-system?. Do not accept #:slurm-api-endpoint and #:slurm-jwt arguments. * ravanan/workflow.scm: Import (ravanan batch-system). (workflow-scheduler): Do not accept #:slurm-api-endpoint and #:slurm-jwt arguments. Pass batch-system to job-state-status. (run-workflow): Check for slurm-api batch system using slurm-api-batch-system?. Do not accept #:slurm-api-endpoint and #:slurm-jwt arguments. * ravanan/job-state.scm: Import (ravanan batch-system). (job-state-status): Do not accept #:slurm-api-endpoint and #:slurm-jwt arguments. Accept batch-system argument.
2024-10-08command-line-tool: Import (guix gexp) into manifest files.Arun Isaac
* ravanan/command-line-tool.scm (load-manifest): Import (guix gexp) into manifest files.
2024-10-08README: Add CI badge.Arun Isaac
* README.md: Add CI badge.
2024-10-08command-line-tool: Do not auto-compile manifest files.Arun Isaac
* ravanan/command-line-tool.scm (load-manifest): Do not auto-compile manifest files.
2024-10-08javascript: Do not serialize JSON if not interpolating string.Arun Isaac
* ravanan/javascript.scm (evaluate-parameter-reference): Do not serialize JSON tree if not interpolating parameter reference. * tests/javascript.scm ("evaluate parameter reference to JSON object", "evaluate parameter reference to JSON object using node"): New tests. ("evaluate parameter reference with node", "evaluate parameter reference (without context)", "evaluate parameter reference with node (without context)"): Update tests.
2024-10-08javascript: Handle node calls without context.Arun Isaac
* ravanan/javascript.scm (evaluate-using-node): Handle cases when context is #f.
2024-10-08javascript: Reference inputs, self or runtime symbols; not strings.Arun Isaac
* ravanan/javascript.scm (evaluate-parameter-reference-1): Reference inputs, self or runtime symbols; not strings.
2024-10-08tests: Add tests for javascript G-expressions.Arun Isaac
* tests/javascript.scm: Import (guix gexp) and (ice-9 match). (gexp->sexp-rec): New function. ("evaluate parameter reference (without context)", "evaluate parameter reference with string interpolation (without context)", "evaluate parameter reference with string interpolation of JSON trees (without context)", "evaluate parameter reference with node (without context)", "evaluate parameter reference with string interpolation using node (without context)", "evaluate parameter reference with string interpolation of JSON trees using node (without context)"): New tests.
2024-10-07command-line-tool: Implement GuixManifestRequirement.Arun Isaac
* ravanan/command-line-tool.scm (%command-line-tool-supported-requirements): Add GuixManifestRequirement. (build-command-line-tool-script): Implement GuixManifestRequirement.
2024-10-07bin: Pass manifest file paths, not manifests to other functions.Arun Isaac
* bin/ravanan: Move to (ravanan command-line-tool). Add comment about declarative modules. (main): Pass manifest file path to run-workflow. * ravanan/command-line-tool.scm (run-command-line-tool, build-command-line-tool-script): Accept manifest file path instead of manifest. * ravanan/workflow.scm (workflow-scheduler, run-workflow): Accept manifest file path instead of manifest.
2024-10-07bin: Load manifests without their definitions leaking out.Arun Isaac
* bin/ravanan: Do not import (gnu packages) and (guix profiles). (load-manifest): New function. (main): Use load-manifest.
2024-10-04javascript: Unify simple parameter reference and node fallback.Arun Isaac
* ravanan/command-line-tool.scm: Do not import (ravanan config), and node from (gnu packages node). (%worker-node): Move to (ravanan javascript). (interpolate-parameter-references): Delete function. (coerce-expression): Always call evaluate-parameter-reference from (ravanan javascript). * ravanan/work/command-line-tool.scm (evaluate-parameter-reference): Delete function. * ravanan/javascript.scm: Mention fallback to node in module commentary. Import (ravanan config), (ravanan work command-line-tool), and node from (gnu packages node). (evaluate-simple-parameter-reference): Rename to evaluate-parameter-reference. (evaluate-parameter-reference-1, evaluate-parameter-reference): Add expression-lib argument. Return regular values, not maybe-monadic values. (evaluate-using-node): New function. * tests/javascript.scm ("evaluate parameter reference", "evaluate parameter reference with string interpolation", "evaluate parameter reference with string interpolation of JSON trees"): Update tests. ("evaluate parameter reference with node", "evaluate parameter reference with string interpolation using node", "evaluate parameter reference with string interpolation of JSON trees using node"): New tests.
2024-10-04javascript: Remove "alternating" from tokenizing docstring.Arun Isaac
tokenize-parameter-references need not return an "alternating" sequence of tokens. There can be consecutive parameter reference tokens or literal strings. * ravanan/javascript.scm (tokenize-parameter-references): Remove "alternating" from docstring.
2024-10-04monads: Use write, not display, to print Just values.Arun Isaac
* ravanan/work/monads.scm (<maybe>): Use write, not display, to print Just values.
2024-10-04javascript: Implement parameter reference javascript subset language.Arun Isaac
* ravanan/javascript.scm, tests/javascript.scm: New files. * ravanan/command-line-tool.scm: Import (ravanan javascript). (coerce-expression): Use evaluate-simple-parameter-reference. (interpolate-parameter-references)[tokenize]: Move to (ravanan javascript) as tokenize-parameter-references.
2024-10-04command-line-tool: Move canonicalize-json to (ravanan work utils).Arun Isaac
* ravanan/command-line-tool.scm (canonicalize-json): Move to (ravanan work utils). Move comment about G-expressions to build-command-line-tool-script. * ravanan/work/utils.scm (ravanan): Import (ravanan work vectors).
2024-10-04command-line-tool: Merge local and remote coerce-expression.Arun Isaac
coerce-expression and coerce-expression-local share most of their code. So, it makes sense to merge them. * ravanan/command-line-tool.scm (coerce-expression): Add optional context argument. (coerce-expression-local): Delete function. (run-command-line-tool): Call coerce-expression instead of coerce-expression-local.
2024-10-02command-line-tool: Embed int value into G-expression.Arun Isaac
* ravanan/command-line-tool.scm (command-line-binding->args): Embed int value into G-expression instead of evaluating it immediately.
2024-10-02command-line-tool: Coerce coresMin expressions.Arun Isaac
* ravanan/command-line-tool.scm (run-command-line-tool): Coerce coresMin expressions.
2024-10-02command-line-tool: Re-indent coerce-expression.Arun Isaac
* ravanan/command-line-tool.scm (coerce-expression): Re-indent.
2024-10-02command-line-tool: Add local version of coerce-expression.Arun Isaac
* ravanan/command-line-tool.scm (coerce-expression-local): New function.
2024-10-02reader: Handle coercion of number to number.Arun Isaac
* ravanan/reader.scm (coerce-type): Handle coercion of number to number. * tests/reader.scm: New file.
2024-10-02config: Remove generated source file.Arun Isaac
config.scm is generated from config.scm.in. Therefore, config.scm must not be committed. * ravanan/config.scm: Delete file.
2024-10-02Revert "config: Remove."Arun Isaac
This reverts commit d611d990b297b3d573d7d5af83e9376744d51dd5. We need to bring back a local node to evaluate javascript expressions on the head node.
2024-10-02workflow: Add default inputs before scheduling.Arun Isaac
We add default input values and resolve them before scheduling. Now that we do that, we no longer have to resolve inputs or check for required inputs in run-workflow. * ravanan/workflow.scm (add-defaults): New function. (workflow-scheduler)[schedule]: Add default inputs and resolve them before scheduling. (run-workflow): Do not resolve inputs or check for required inputs.
2024-10-02command-line-tool: Make runtime.cores a number.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[cores]: Return a number on the slurm-api batch system.
2024-10-02command-line-tool: Support coresMin ResourceRequirement.Arun Isaac
* ravanan/command-line-tool.scm: Import (ravanan reader). (%command-line-tool-supported-requirements): Add ResouceRequirement. (command-line-tool-supported-requirements): Remove ResourceRequirement for the single-machine batch system. * ravanan/command-line-tool.scm (run-command-line-tool): Request the number of CPUs specified in coresMin of the ResourceRequirement.
2024-10-02reader: Support coercion to number.Arun Isaac
* ravanan/reader.scm (coerce-type): Support coercion to number.
2024-10-02workflow: Move coerce-type to (ravanan reader).Arun Isaac
* ravanan/workflow.scm (coerce-type): Move to ... * ravanan/reader.scm (coerce-type): ... here.