Release notes
Next release
Added:
- Rayon launcher that prefixes commands with
RAYON_NUM_THREADS={T}. slurm_gpus_per_taskcluster option.
Fixed:
- Fix "JSON Pointers" example.
- Handle non-numeric suffixes written by
sbatch.
0.7.1 (2025-08-21)
Fixed:
- Statically link Linux binaries so that
cargo binstall rowinstalls a working version even on old Linux distributions.
0.7.0 (2025-08-11)
Highlights:
Row 0.7 allows users to place product files in subdirectories. For example:
[[action]]
products = ['file1.dat', 'subdir/file2.h5', 'long/path/to/file3.gsd']
The code is also more readable now using if-let chains that require Rust 1.88.
Added:
productscan now contain files in subdirectories.
Changed:
- Rust 1.88.0 is required to build row from source.
0.6.0 (2025-05-02)
Highlights:
Row 0.6 adds new options that allow you to customize the location and/or names of
the output files generated by submitted jobs. Set output_file_path to place
all output files in a given directory:
[action.submit_options.<cluster_name>]
output_file_path = "my_output_directory"
By default, files are named {action_name}-%j.out Set output_file_name to use
different names:
[action.submit_options.<cluster_name>]
output_file_path = "output-%j.txt"
The string "{output_file_path}/{output_file_path}" (or just "{output_file_name}"
when output_file_path is unset) is passed to
sbatch's --output option.
Added:
- The
submit_optionskeysoutput_file_pathandoutput_file_name.
0.5.0 (2025-04-21)
Highlights:
In Row 0.5, the subcommands show directories, show jobs, and show status now
report No matches when there are no results to show.
Users can also request an amount of memory specific to an action with
memory_per_cpu_mb or memory_per_gpu_mb. For example:
[action.resources]
memory_per_cpu_mb = 1024
When set, the given value will be passed to the SLURM option --mem-per-cpu or
--mem-per-gpu if the partition has no memory request set or the action's value is
smaller than the partition's. Row returns an error when the user requests more
memory than the partition has available to prevent unexpected additional costs.
tip
Most users should omit the memory request. When omitted row will automatically select the maximum amount of memory possible without incurring extra charges on your HPC resources.
Added:
- Actions can request the following new resources:
memory_per_cpu_mbormemory_per_gpu_mb.
Changed:
- Writing tabular output with no rows now results in the output
No matches.. - Build executables on Ubuntu 22.04.
- Report an error when the workflow requests 0 processes, GPUs, or threads.
- Require Rust 1.85 or newer to build.
- Memory requests in
clusters.tomlmust now be set in MB. Thememory_per_*keys are renamed tomemory_per_*_mb.
Fixed:
- Submit MPI jobs on Great Lakes without error.
0.4.0 (2024-12-06)
Highlights:
Row 0.4 expands the command templating functionality, adds shell autocompletion,
and the show jobs subcommand.
The new template arguments allow direct use of command line applications as actions,
removing the need for shim scripts that access the workspace path and/or directory
values before invoking a subprocess. {workspace_path} expands to the current project's
workspace path and {/JSON pointer} expands to the value of the given JSON pointer for
the directory acted on.
Shell autocompletion allows users to autocomplete all parameter names and
workspace dependent values for cluster, action, and directories. To enable,
execute the appropriate command in your shell's profile:
- Bash:
source <(COMPLETE=bash row) - Fish:
source (COMPLETE=fish row | psub) - Zsh:
source <(COMPLETE=zsh row)
show jobs prints a table summarizing all currently submitted jobs that match given
action and directory criteria.
Added:
- In job scripts, set the environment variable
ACTION_WORKSPACE_PATHto the relative path to the current workspace. {workspace_path}template parameter inaction.command- replaced with the relative path to the current workspace.{/JSON pointer}template parameter inaction.command- replaced with the portion of the directory's value referenced by the given JSON pointer.- Shell autocomplete.
show jobssubcommand.
Fixed:
- All user-provided content (directories, action names, cluster names, and values) are properly escaped in the bash script output.
- Typographical errors in the documentation.
- The documentation now builds correctly with mdbook 0.4.43.
- Example code converts environment variables to integers where needed.
0.3.1 (2024-10-04)
Changed:
- Improved the documentation.
0.3.0 (2024-08-21)
Highlights:
Row 0.3 adds command line arguments to reduce the output from show commands,
including the --short option to most show subcommand and status filtering options
to show status. For example, row show status --eligible shows only actions that have
eligible directories and row show cluster --all --short lists the names of all the
available cluster configurations. Row 0.3 also makes a number of fixes and changes
when using group.include in a non-trivial manner.
Added:
- Edit links to documentation pages.
- New arguments to
show statusdisplay actions that are in the requested states:--completed,--eligible,--submitted, and--waiting. cluster.submit_optionsconfiguration option inclusters.toml.--shortoption toshow launchersandshow directories.
Changed:
- Show
importlines in Python examples. - Improve the verbose output from
submit. show statushides actions with 0 directories by default. Pass--allto show all actions.cleannow cleans all caches by default.- Submit jobs with
--constraint="scratch"by default on Delta. - Submit jobs with
--constraint="nvme"by default on Frontier. group.include.allnow employs short circuit evaluation.- Change
--nameoption ofshow clusterto--short. show directoriesnow accepts an optional--actionargument.
Fixed:
submit_whole = truechecks only directories that matchgroup.include.- Do not print trailing spaces after the final column in tabular output.
0.2.0 (2024-06-18)
Row 0.2 adds support for partial-node job submissions on clusters without shared partitions and fixes GPU job submissions on some clusters.
Added:
warn_[cpus|gpus]_not_multiple_ofkey in clusters.toml.
Changed:
- OLCF Frontier configuration now uses
warn_gpus_not_multiple_ofinstead ofrequire_gpus_multiple_of. - OLCF Andes configuration now uses
warn_cpus_not_multiple_ofinstead ofrequire_cpus_multiple_of.
Fixed:
- Prevent
gpus-per-task is mutually exclusive with tres-per-taskerror. - Correctly set
--mem-per-gpuon Great Lakes. - Correct formatting in the documentation.
- Correct typos in the documentation.
0.1.3 (2024-05-30)
Fixed:
- Broken build.
0.1.2 (2024-05-30)
Fixed:
- Erroneous code examples in the Grouping directories tutorial.
0.1.1 (2024-05-29)
Added:
conda-forgeinstallation instructions.
0.1.0 (2024-05-22)
- Initial release.
Development of row is led by the Glotzer Group at the University of Michigan.
Copyright © 2024-2025 The Regents of the University of Michigan.