aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
3 daysjob-state: Do not allow updating of low-level job-state objects.•••Low-level job-state objects tied to the batch system (such as those that represent single-machine and slurm-api jobs) never get updated. So, there is no point permitting it. * ravanan/job-state.scm (job-state-status): Return only the job status, not the updated job state. * ravanan/workflow.scm (workflow-scheduler)[poll]: Accept only the job status, not the updated job state, from job-state-status. * ravanan/workflow.scm (<command-line-tool-state>)[job-state]: Remove setter. Arun Isaac
3 daysworkflow: Return state of scheduled jobs as a state-monadic value.•••* ravanan/command-line-tool.scm (run-command-line-tool): Return state of scheduled jobs as a state-monadic value. * ravanan/workflow.scm (workflow-scheduler)[schedule]: Return state of scheduled jobs as a state-monadic value. (run-workflow): Run state of scheduled workflow in the state monad. * ravanan/propnet.scm (poll-propnet): Run state of scheduled jobs in the state monad. [schedule-propagators]: New function. Arun Isaac
4 dayssingle-machine: Make interface state-monadic.•••* ravanan/single-machine.scm: Import (ravanan work monads). (submit-job): Convert to a state-monadic function. * ravanan/command-line-tool.scm (run-command-line-tool): Run state-monadic return value from single-machine:submit-job. Arun Isaac
4 daysslurm: Make interface state-monadic.•••* ravanan/slurm-api.scm: Import (ravanan work monads). (slurm-http-request, slurm-http-get, slurm-http-post, submit-job, job-state): Convert to state-monadic functions. * ravanan/command-line-tool.scm (run-command-line-tool): Update use of submit-job. * ravanan/job-state.scm: Import (ravanan work monads). (job-state-status): Update use of job-state. Arun Isaac
4 dayspropnet: Schedule all propagators from inbox in a single step.•••There is no value in making the loop recursion explicit. A single append-map call is clearer. * ravanan/propnet.scm (poll-propnet): Schedule all propagators from inbox in a single step. Arun Isaac
4 dayssingle-machine: Move single machine batch system to separate module.•••* ravanan/command-line-tool.scm: Import (ravanan single-machine). Import (ravanan slurm-api) with slurm: prefix. (run-command-line-tool): Call single-machine:submit-job. Prefix submit-job with slurm:. * ravanan/single-machine.scm: New file. Arun Isaac
4 daysmonads: Rename bindings to other-bindings in mlet*.•••other-bindings is a more descriptive name. * ravanan/work/monads.scm (mlet*): Rename bindings to other-bindings. Arun Isaac
4 daysmonads: Re-indent mlet*.•••* ravanan/work/monads.scm (mlet*): Re-indent. Arun Isaac
4 daysmonads: Add mappend-map.•••* ravanan/work/monads.scm (mappend-map): New function. (state-append-map): New public function. Arun Isaac
4 daysmonads: Add mmap.•••* ravanan/work/monads.scm (mmap): New function. (state-map): New public function. Arun Isaac
4 daysmonads: Add sequence.•••* ravanan/work/monads.scm (sequence): New function. (state-sequence): New public function. Arun Isaac
4 daysmonads: Implement the state monad.•••* ravanan/work/monads.scm (<mstate>): New record type. (state-bind, current-state, set-current-state, run-with-state): New public functions. (state-return, state-let*, state-begin): New public macros. * ravanan/command-line-tool.scm: Be selective to avoid importing run-with-state from (guix monads). * .dir-locals.el (scheme-mode): Indent state-let* correctly. Arun Isaac
4 daysmonads: Add mbegin.•••* ravanan/work/monads.scm (mbegin): New macro. Arun Isaac
4 daysmonads: Do not export maybe-monad.•••* ravanan/work/monads.scm: Do not export maybe-monad. Arun Isaac
4 dayscommand-line-tool: Re-indent run-command-line-tool.•••* ravanan/command-line-tool.scm (run-command-line-tool): Re-indent. Arun Isaac
2025-01-07guix: Use %default-gnu-imported-modules.•••%gnu-build-system-modules is deprecated. * .guix/ravanan-package.scm (ravanan)[arguments]: Replace %gnu-build-system-modules with %default-gnu-imported-modules. Arun Isaac
2025-01-07guix: Add NODE makeflag.•••* .guix/ravanan-package.scm (ravanan)[arguments]: Add NODE makeflag. Arun Isaac
2025-01-07guix: Depend on guile-json-4.•••* .guix/ravanan-package.scm: Import guile-json-4 from (gnu packages guile). (ravanan)[inputs]: Add guile-json-4. Arun Isaac
2024-12-06dir-locals: Indent call-with-inferior correctly.•••* .dir-locals.el (scheme-mode): Indent call-with-inferior correctly. Arun Isaac
2024-12-05bin: Do not specify the default output port unnecessarily.•••* bin/ravanan (main): Do not specify the default (current-output-port). Arun Isaac
2024-12-05bin: Add --output-directory argument.•••* bin/ravanan: Import (ravanan work utils). (%options): Add --output-directory. (print-usage): Document it. (symlink-to-output-directory): New function. (main): Symlink to output directory if it is specified. Arun Isaac
2024-12-04bin: Indicate that the --store argument was not specified.•••* bin/ravanan (main): Indicate specifically that the --store argument was not specified. Arun Isaac
2024-12-04bin: Indicate that the --scratch argument was not specified.•••* bin/ravanan (main): Indicate specifically that the --scratch argument was not specified. Arun Isaac
2024-12-04bin: Indicate that the --slurm-jwt argument was not specified.•••* bin/ravanan (main): Indicate specifically that the --slurm-jwt argument was not specified. Arun Isaac
2024-12-04bin: Add --version flag.•••* ravanan/config.scm.in (%project, %version): New variables. * Makefile (version): New variable. (%.scm): Substitute %project and %version too. * bin/ravanan: Import (ravanan config). (%options): Add --version. (print-usage): Document it. (main): Implement it. Arun Isaac
2024-11-06command-line-tool: Bubble up manifest file errors to the top level.•••* 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. Arun Isaac
2024-11-06bin: Remove default Guix manifest.•••* bin/ravanan (main): Remove default Guix manifest. Arun Isaac
2024-11-06command-line-tool: Support packages in SoftwareRequirement.•••* 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. Arun Isaac
2024-11-06command-line-tool: Allow processing manifest objects without a file.•••* ravanan/command-line-tool.scm (manifest->environment): New function. (manifest-file->environment)[build-derivation]: Delete function. Call manifest->environment. Arun Isaac
2024-11-06bin: Add --guix-channels command-line argument.•••* bin/ravanan: Import (guix channels). (%options): Add guix-channels. (print-usage): Document it. (main): Load channels from channels file if specified. Arun Isaac
2024-11-06command-line-tool: Build manifest in Guix inferior with channels.•••* 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. Arun Isaac
2024-11-06command-line-tool: Convert manifest to environment in new function.•••* ravanan/command-line-tool.scm (manifest-file->environment): New function. (build-command-line-tool-script): Use manifest-file->environment. Arun Isaac
2024-11-06utils: Generalize load-manifest and move to (ravanan utils).•••* 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. Arun Isaac
2024-11-06command-line-tool: Implement WorkReuse.•••* ravanan/command-line-tool.scm (%command-line-tool-supported-requirements): Add WorkReuse. * ravanan/command-line-tool.scm (build-command-line-tool-script): Implement WorkReuse. Arun Isaac
2024-11-06command-line-tool: Fit Guix manifest into SoftwareRequirement.•••* 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. Arun Isaac
2024-11-06slurm-api: Find state of purged jobs.•••* ravanan/slurm-api.scm (job-state): Query slurmdb for jobs that have been purged from slurmctld's active memory. Arun Isaac
2024-11-06slurm-api: Deduplicate API error checks.•••* ravanan/slurm-api.scm (check-api-error): New function. (submit-job, job-state): Use check-api-error. Arun Isaac
2024-11-06slurm-api: Upgrade to API version 0.0.41.•••* 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. Arun Isaac
2024-11-06README: Add ravanan pronunciation.•••* README.md: Add ravanan pronunciation. Arun Isaac
2024-10-11workflow: Report file interning.•••* ravanan/workflow.scm (intern-file): Report file interning. Arun Isaac
2024-10-11workflow: Do not re-intern files that have already been interned.•••* ravanan/workflow.scm (intern-file): Do not re-intern files that have already been interned into the store. Arun Isaac
2024-10-11command-line-tool: Compute hash of stdout file.•••* 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. Arun Isaac
2024-10-11command-line-tool: Recompute checksum only if it is not provided.•••* ravanan/command-line-tool.scm (build-command-line-tool-script)[canonicalize-file-value]: Recompute checksum only if it is not provided. Arun Isaac
2024-10-10workflow: Recompute checksum only if it is not provided.•••* 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. Arun Isaac
2024-10-10slurm-api: Allow requesting for a nice adjustment.•••* 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. Arun Isaac
2024-10-09slurm-api: Allow requesting for a specific partition.•••* 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. Arun Isaac
2024-10-09batch-system: Introduce <slurm-api-batch-system> record type.•••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. Arun Isaac
2024-10-08command-line-tool: Import (guix gexp) into manifest files.•••* ravanan/command-line-tool.scm (load-manifest): Import (guix gexp) into manifest files. Arun Isaac
2024-10-08README: Add CI badge.•••* README.md: Add CI badge. Arun Isaac
2024-10-08command-line-tool: Do not auto-compile manifest files.•••* ravanan/command-line-tool.scm (load-manifest): Do not auto-compile manifest files. Arun Isaac